LNK2019: unresolved external symbol "void __cdel referencd in function _main

sfxyz7 2013-10-05 11:30:23
//main.cpp
#include <iostream>
using namespace std;
void GetStudentInfo();
int main()
{
GetStudentInfo();
return 0;
}

//stdinfo.cpp
//stud是结构体
void GetStudentInfo()
{
int i=1;
ifstream in("stdinfo.txt");
if(!in)
{
cout<<"ERROR_OPEN_STDINFO"<<endl;
exit(0);
}
string str;
while(getline(in,str))
{
stud[i].stdID = str.substr(0,10);
stud[i].classNum = atoi(str.substr(10,1).c_str());
stud[i].name = str.substr(11,str.length()-11);
stud[i].subID = atoi(str.substr(6,4).c_str());
i++;
}
}
然后编译的时候会出现如下错误:
LNK2019: unresolved external symbol "void __cdecl GetStudentInfo(void)" (?GetStudentInfo@@YAXXZ) referenced in function _main
如果把GetStudentInfo()里面的内容放在主函数里面就不会出现这个问题,该怎么解决啊?
...全文
236 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
图灵狗 2013-10-08
  • 打赏
  • 举报
回复
检查一下所有代码中的GetStudentInfo是否有拼写错误。
引用 楼主 sfxyz7 的回复:
//main.cpp #include <iostream> using namespace std; void GetStudentInfo(); int main() { GetStudentInfo(); return 0; } //stdinfo.cpp //stud是结构体 void GetStudentInfo() { int i=1; ifstream in("stdinfo.txt"); if(!in) { cout<<"ERROR_OPEN_STDINFO"<<endl; exit(0); } string str; while(getline(in,str)) { stud[i].stdID = str.substr(0,10); stud[i].classNum = atoi(str.substr(10,1).c_str()); stud[i].name = str.substr(11,str.length()-11); stud[i].subID = atoi(str.substr(6,4).c_str()); i++; } } 然后编译的时候会出现如下错误: LNK2019: unresolved external symbol "void __cdecl GetStudentInfo(void)" (?GetStudentInfo@@YAXXZ) referenced in function _main 如果把GetStudentInfo()里面的内容放在主函数里面就不会出现这个问题,该怎么解决啊?
sfxyz7 2013-10-08
  • 打赏
  • 举报
回复
引用 8 楼 mujiok2003 的回复:
[quote=引用 1 楼 dizuo 的回复:] main.cpp中函数申请加个extern void GetStudentInfo();
函数声明默认是extern的。 [/quote] 是的,不是static的,所以不用加,总结的原因就是软件的正版与非正版的问题。
sfxyz7 2013-10-08
  • 打赏
  • 举报
回复
引用 7 楼 lm_whales 的回复:
[quote=引用 6 楼 buyong 的回复:] [quote=引用 5 楼 sfxyz7 的回复:] [quote=引用 4 楼 lm_whales 的回复:] 文件stdinfo.cpp 编译没有通过,所以: LNK2019: unresolved external symbol "void __cdecl GetStudentInfo(void)" (?GetStudentInfo@@YAXXZ) referenced in function _main 一个可能是,stdinfo.cpp里面,没有以下语句中的一个 #include <iostream> #include <fstream> using namespace std;
有这些,今天在另外一个机器上没有出现这些问题,貌似是盗版的问题[/quote] 你先看看你的stdinfo.cpp在不在工程文件里。[/quote] ++ 这是另一个可能。 貌似是盗版的问题? 那买个正版吧! [/quote] 哥们,正版的很贵的。嘿嘿
mujiok2003 2013-10-08
  • 打赏
  • 举报
回复
引用 1 楼 dizuo 的回复:
main.cpp中函数申请加个extern void GetStudentInfo();
函数声明默认是extern的。
lm_whales 2013-10-08
  • 打赏
  • 举报
回复
引用 6 楼 buyong 的回复:
[quote=引用 5 楼 sfxyz7 的回复:] [quote=引用 4 楼 lm_whales 的回复:] 文件stdinfo.cpp 编译没有通过,所以: LNK2019: unresolved external symbol "void __cdecl GetStudentInfo(void)" (?GetStudentInfo@@YAXXZ) referenced in function _main 一个可能是,stdinfo.cpp里面,没有以下语句中的一个 #include <iostream> #include <fstream> using namespace std;
有这些,今天在另外一个机器上没有出现这些问题,貌似是盗版的问题[/quote] 你先看看你的stdinfo.cpp在不在工程文件里。[/quote] ++ 这是另一个可能。 貌似是盗版的问题? 那买个正版吧!
buyong 2013-10-07
  • 打赏
  • 举报
回复
引用 5 楼 sfxyz7 的回复:
[quote=引用 4 楼 lm_whales 的回复:] 文件stdinfo.cpp 编译没有通过,所以: LNK2019: unresolved external symbol "void __cdecl GetStudentInfo(void)" (?GetStudentInfo@@YAXXZ) referenced in function _main 一个可能是,stdinfo.cpp里面,没有以下语句中的一个 #include <iostream> #include <fstream> using namespace std;
有这些,今天在另外一个机器上没有出现这些问题,貌似是盗版的问题[/quote] 你先看看你的stdinfo.cpp在不在工程文件里。
sfxyz7 2013-10-07
  • 打赏
  • 举报
回复
引用 4 楼 lm_whales 的回复:
文件stdinfo.cpp 编译没有通过,所以: LNK2019: unresolved external symbol "void __cdecl GetStudentInfo(void)" (?GetStudentInfo@@YAXXZ) referenced in function _main 一个可能是,stdinfo.cpp里面,没有以下语句中的一个 #include <iostream> #include <fstream> using namespace std;
有这些,今天在另外一个机器上没有出现这些问题,貌似是盗版的问题
lm_whales 2013-10-06
  • 打赏
  • 举报
回复
文件stdinfo.cpp 编译没有通过,所以: LNK2019: unresolved external symbol "void __cdecl GetStudentInfo(void)" (?GetStudentInfo@@YAXXZ) referenced in function _main 一个可能是,stdinfo.cpp里面,没有以下语句中的一个 #include <iostream> #include <fstream> using namespace std;
sfxyz7 2013-10-05
  • 打赏
  • 举报
回复
引用 1 楼 dizuo 的回复:
main.cpp中函数申请加个extern void GetStudentInfo();
一楼二楼的方法都试过了,不起作用。还有别的方法吗?
max_min_ 2013-10-05
  • 打赏
  • 举报
回复
1楼说的方法是其一 也可以再加一个stdinfo.h文件的里面加上void GetStudentInfo()函数的申明 然后再main.cpp和stdinfo.cpp中 分别 #include "stdinfo.h"
ryfdizuo 2013-10-05
  • 打赏
  • 举报
回复
main.cpp中函数申请加个extern void GetStudentInfo();

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧