解决外部符号错误:_MAIN,_WINMAIN@16,__BEGINTHREAD

转载 2006年05月25日 17:28:00

在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, error LNK2001错误, 典型的错误提示有:
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
下面介绍解决的方法
:
1. Windows
子系统设置错误, 提示
:
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Windows
项目要使用Windows子系统, 而不是Console, 可以这样设置
:
[Project] --> [Settings] -->
选择"Link"属性页
,
Project Options中将/subsystem:console改成
/subsystem:windows
2. Console
子系统设置错误, 提示
:
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
控制台项目要使用Console子系统, 而不是Windows, 设置
:
[Project] --> [Settings] -->
选择"Link"属性页
,
Project Options中将/subsystem:windows改成
/subsystem:console
3.
程序入口设置错误, 提示
:
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16
通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口
:
[Project] --> [Settings] -->
选择"C/C++"属性页
,
Category中选择
Output,
再在Entry-point symbol中填入wWinMainCRTStartup, 即可

4.
线程运行时库设置错误, 提示:
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
这是因为MFC要使用多线程时库, 需要更改设置
:
[Project] --> [Settings] -->
选择"C/C++"属性页
,
Category中选择
Code Generation,
再在Use run-time library中选择Debug Multithreaded或者
multithreaded
其中
,
Single-Threaded                
单线程静态链接库(release版本
)
Multithreaded                  
多线程静态链接库(release版本
)
multithreaded DLL              
多线程动态链接库(release版本
)
Debug Single-Threaded          
单线程静态链接库(debug版本
)
Debug Multithreaded            
多线程静态链接库(debug版本
)
Debug Multithreaded DLL        
多线程动态链接库(debug版本
)
单线程: 不需要多线程调用时, 多用在DOS环境下

多线程: 可以并发运行
静态库: 直接将库与程序Link, 可以脱离MFC库运行
动态库: 需要相应的DLL动态库, 程序才能运行

相关文章推荐

解决外部符号错误:_main,_WinMain@16,__beginthreadex

解决外部符号错误:_main,_WinMain@16,__beginthreadex -!t'my`yK  在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就...

error LNK2019: 无法解析的外部符号 _WinMain@16

转自:http://www.lampthneo.com/error-lnk2019-_winmain16.html 在好不容易解决了上两篇文章说到的error C2664和errorLNK2...

MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainC

错误表现: 1>------ 已启动生成: 项目: 自定义断言, 配置: Debug Win32 ------ 1>正在编译... 1>WinMain.cpp 1>正在链接... 1>MSV...
  • zztoll
  • zztoll
  • 2012-07-17 17:33
  • 4329

error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainCR...

转自:http://blog.csdn.net/playstudy/article/details/6661868 很久没搞win上东西了,最近将代码导入工程第一次ok,隔了几天重新编译就出现下面的...
  • chlaws
  • chlaws
  • 2012-11-26 12:05
  • 6743

error LNK2019: 无法解析的外部符号 __imp__DispatchMessageW@4,该符号在函数 _WinMain@16 中被引用

出现错误: 1>WinMain.obj : error LNK2019: 无法解析的外部符号 __imp__DispatchMessageW@4,该符号在函数 _WinMain@16 中被引用 1...

无法解析的外部符号 _main解决办法

许多新手在编程时经常遇到“无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用”这样的错误,最近看了一些这方面的书籍,现将解决方案大概叙述一下: 连接程序...

错误 1 error LNK2019: 无法解析的外部符号 _wWinMain@16,该符号在函数 ___tmainCRTStartup 中被引用 E:\elipse demo\LTG\LTG\

下午程序还运行的好好,晚上同学要看看效果,结果运行程序就报错了 错误 1 error LNK2019: 无法解析的外部符号 _wWinMain@16,该符号在函数 ___tmainCRTStartu...
  • LTG01
  • LTG01
  • 2016-03-16 22:59
  • 653

【学习ARToolkit小记之五】 解决“error LNK2019: 无法解析的外部符号 ___glutCreateWindowWithExit@8”错误

接上一则:ARToolkit(4):ARToolkit开发原则(Development Principles)(http://blog.csdn.net/qingyang8513/article/de...

error LNK2001: VC中外部符号错误的解决

参考资料:http://blog.csdn.net/dongfangyu/article/details/4580582 学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于编程者...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)