错误unresolved external symbol _main referenced in function "int _cdecl invovke _main(void)"

当出现这种错误时,你首先要做得是检查代码拼写错误 ,特别是字母拼写顺序错误、{ }不匹配,有很大概率是这种低级错误。接下来才考虑其它问题:

产生这个问题可能的原因
1, 你用vc建了一个控制台程序,它的入口函数应该是main, 而你使用了WinMain.
2. 你用vc打开了一个.c/.cpp 文件,然后直接编译这个文件,这个文件中使用了WinMian而不是main作为入口函数。vc这时的默认设置是针对控制台程序的。
解决方法
1).进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_CONSOLE, 添加_WINDOWS
2).进入project->setting->Link, 在Project options中将 /subsystem:console改为/subsystem:windows.
3.)保存设置,Rebuild All.

3.还有一种是让人脑恼火的:链接错误 与 LIBCMT冲突,与MSVCRT冲突
解决方法
1).在“配置属性–>链接器–>输入–>忽略特定库”中把libcmt.lib添加进去
2).当发生冲突的是其它自己编译的库函数时,可能是因为lib版本不一致。解决的办法是根据配置重新编译lib,打开项目属性,将“配置属性–>C/C+±->代码生成–>运行时库”设置为“多线程调试 DLL(/MDd)”(因为新工程的设置是这样子)。重新编译

error LNK2019: unresolved external symbol
LNK2019错误一般都是 compile是能找到相应的header (.h)文件,但链接时找不到相应的 lib 库文件(也含dll文件)
问题大致是这样:我在A.h中声明了一个函数,A.cpp中对这个函数进行了实现。在B.h中引用了A.h的头文件,在B.cpp中用到了A.cpp中实现的这个函数。发觉路径什么的都没有问题。就是报错。后来仔细检查才发现,原来我在A.cpp中实现的这个函数和A.h中定义的不一样。A.h中定义的这个函数有3个参数,A.cpp中实现的时候有5个参数,而在B.cpp中调用时考虑的是3个参数的情形。这样链接时就出现找不到函数的外部符号了。提醒大家要仔细。


本文来自 neuqbingoye 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/neuqbingoye/article/details/7299475?utm_source=copy

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值