当前位置:软件学习 > 其它软件 >>

令人无语的 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版本: 调试阶段使用


参照往上很多资料!

特别感谢! 


摘自  shanshanpt的专栏 
补充:软件开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,