令人无语的 windows 编程 error LNK 2001 错误

VC++时经常会遇到链接错误LNK2001:常见的有

 

解决外部符号错误:_main,_WinMain@16,__beginthreadex -!t'my`yK

主要是在创建 MFC 的程序时,如果没有新建 MFC 的工程,而是手动连接时,会出现好多错误,会很无语的:

 

error LNK2001错误

1.libcmtd.lib(crt0.obj) : error LNK2001: unresolvedexternal symbol _main
2.LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved externalsymbol WinMAin@16

3.msvcrtd.lib(crtexew.obj) : error LNK2001: unresolvedexternal symbol WinMain@16

4.nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolvedexternal symbol __beginthreadex

5.nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolvedexternal symbol __endthreadex

 

解决 1 :

[Project] --> [Settings] -->选择"Link"属性页,

在ProjectOptions中将/subsystem:console改成/subsystem:windows 

 

解决 2 :

[Project] --> [Settings] -->选择"Link"属性页,

在ProjectOptions中将/subsystem:windows改成/subsystem:console

 

解决 3:

[Project] --> [Settings] -->选择"Link"属性页,

在Category中选择Output,

再在Entry-point symbol中填入wWinMainCRTStartup

 

解决 4:( 这两个是 线程问题 

[Project] --> [Settings] -->选择"C/C++"属性页,

在Category中选择Code Generation,

再在Use run-time library中选择DebugMultithreaded或者multithreaded

 

具体解释:::

Single-Threaded                单线程静态链接库(release版本)

Multithreaded                  多线程静态链接库(release版本)

multithreadedDLL              多线程动态链接库(release版本)

DebugSingle-Threaded          单线程静态链接库(debug版本)

DebugMultithreaded            多线程静态链接库(debug版本)

Debug MultithreadedDLL        多线程动态链接库(debug版本)

 

单线程: 不需要多线程调用时, 多用在DOS环境下

多线程: 可以并发运行

静态库: 直接将库与程序Link, 可以脱离MFC库运行

动态库: 需要相应的DLL动态库, 程序才能运行

release版本: 正式发布时使用

debug版本: 调试阶段使用


参照往上很多资料!

特别感谢!




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值