,,提示出现unresolved external symbol _main的解决方法
提示符unresolvedexternalsymbol_main搜索的原因如下。创建MFC项目时,不使用MFCAppWizard向导。如果项目参数设置不正确,在编译过程中会出现许多连接错误,如errorLNK2001错误。典型的错误提示有:
libcmtd . lib(CRT 0 . obj):error lnk 2001:unresolvedexternalsymbol _ main
libcd . lib(wincrt 0 . obj):error lnk 2001:unresolvdexternalsymbol _ WinMain @ 16
msvcrtd . lib(crtexew . obj):error lnk 2001:unresolvdexternalsymbol _ WinMain @ 16
nafxcwd . lib(thrd core . obj):error lnk 2001:unresolvedexternalsymbol _ _ beginthreadex
nafxcwd . lib(thrd core . obj):error lnk 2001:unresolvedexternalsymbol _ _ endthreadex
解决方案如下:
1.1号。Windows子系统设置不正确,提示:
libcmtd . lib(CRT 0 . obj):error lnk 2001:unresolvedexternalsymbol _ main
Windows项目应该使用Windows子系统而不是控制台,可以设置如下:
[项目]-[设置]-选择“链接”属性页,
将项目选项中的/subsystem:console更改为/subsystem:windows
2.控制台子系统设置错误,提示:
libcd . lib(wincrt 0 . obj):error lnk 2001:unresolvdexternalsymbol _ WinMain @ 16
控制台项目应使用控制台子系统而不是Windows,并设置:
[项目]-[设置]-选择“链接”属性页,
将项目选项中的/subsystem:windows更改为/subsystem:console
3.程序入口设置错误,提示:
msvcrtd . lib(crtexew . obj):error lnk 2001:unresolvdexternalsymbol _ WinMain @ 16
MFC项目的程序入口函数一般是WinMain。如果编译的是Unicode版本的项目,则程序条目必须更改为wWinMainCRTStartup,因此需要重置程序条目:
[项目]-[设置]-选择“链接”属性页,
在类别中选择输出,
然后在入口点符号中填入wWinMainCRTStartup。
4.线程运行时库设置错误,提示:
nafxcwd . lib(thrd core . obj):error lnk 2001:unresolvedexternalsymbol _ _ beginthreadex
nafxcwd . lib(thrd core . obj):error lnk 2001:unresolvedexternalsymbol _ _ endthreadex
这是因为MFC需要更改设置以使用多线程时间库:
[项目]-[设置]-选择' C/C '属性页,
在类别中选择代码生成,
在用户运行时库中选择调试多线程或多线程。
其中,
单线程单线程静态链接库(发布版)
线程化多线程静态链接库(发布版)
线程化dll多线程动态链接库(发布版)
调试单线程静态链接库(调试版)
调试多线程静态链接库(调试版)
DebugMultithreadedDLL多线程动态链接库(调试版)
单线程:不需要多线程调用时,多用于DOS环境。
多线程:可以并发运行。
静态库:直接把库和程序链接起来,不用MFC库也能运行。
动态库:运行程序需要相应的DLL动态库。
发布:正式发布时使用。
调试:用于调试阶段
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。