关闭

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

561人阅读 评论(0) 收藏 举报

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版本: 调试阶段使用


参照往上很多资料!

特别感谢!




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:558262次
    • 积分:6472
    • 等级:
    • 排名:第3722名
    • 原创:182篇
    • 转载:36篇
    • 译文:0篇
    • 评论:82条
    博客专栏