error LNK2001: unresolved external symbol _main解决办法

 

解决外部符号错误:_main,_WinMain@16,__beginthreadex !-N­!Bt8;  
在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, error LNK2001错误, 典型的错误提示有: {=/Fc`74  
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Q-!gO  
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 c_CVZR?  
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 $qr6LIKGw  
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex n1b:Bv4"]#  
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex ­^iBIp#  

utBrH
 
1. Windows
子系统设置错误, 提示: me{u~9&  
libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main [>r0 (x &.  
H8[A*uYL  
Windows
项目要使用Windows子系统, 而不是Console, 可以这样设置: T@i* F M  
[:#K_EI5%  
[Project] --> [Settings] -->
选择"Link"属性页, {ri={p]l  
Project Options中将/subsystem:console改成/subsystem:windows   {4,],0bjx/  
oC49c~`8  
2. Console
子系统设置错误, 提示: 9l­
 &q}
 
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 'xj5R=V  
@[1]Q‑Vg5  
控制台项目要使用Console子系统, 而不是Windows, 设置: qc @cd i  
ga%/n! S  
[Project] --> [Settings] -->
选择"Link"属性页, O;<wD h)Yt  
Project Options中将/subsystem:windows改成/subsystem:console ^_Hf}8H7]  
K‑$h/<_ V  
3.
程序入口设置错误, 提示: %}9tU>?F#  
msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 ]E<Z5G1HD  
~hvj3zC5xz  
通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口: Bgm8IK)6  
+aus m!~6  
[Project] --> [Settings] -->
选择"Link"属性页, V@`b7GM‑  
Category中选择Output, hUl[1] ‑Rtt  
再在Entry-point symbol中填入wWinMainCRTStartup, 即可 m| ,Tk:
xH
 
vTK%8qoZ  
4.
线程运行时库设置错误, 提示: Z­5q%L!4G  
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex qIZ+%ZOu
 
 
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex arm[1]_SyL0  
bPF GQlmIO  
这是因为MFC要使用多线程时库, 需要更改设置: |Gz[1]<I   
0OHXg=   
[Project] --> [Settings] -->
选择"C/C++"属性页, ~} ,[1]H+A!?  
Category中选择Code Generation, uY~­mi9
E
 
再在Use run-time library中选择Debug Multithreaded或者multithreaded F[/T'{  
咸鱼游侠(75374355) 12:11:11 jj&G[-"bv  
其中, #6@hVR[1].  
Single-Threaded                
单线程静态链接库(release版本) ]B(}^N>WH  
Multithreaded                  
多线程静态链接库(release版本) R,D/:k'­~k  
multithreaded DLL              
多线程动态链接库(release版本) =Jl/^u%H(x  
Debug Single-Threaded          
单线程静态链接库(debug版本) D7pQWlN/  
Debug Multithreaded            
多线程静态链接库(debug版本) ]kNxytH/o  
Debug Multithreaded DLL        
多线程动态链接库(debug版本) |8}y?kAC[1]  
j/KOKvY)  
单线程: 不需要多线程调用时, 多用在DOS环境下 + q2/3REzx  
多线程: 可以并发运行 ­n S$4[!0  
静态库: 直接将库与程序Link, 可以脱离MFC库运行 "c~``i/G   
动态库: 需要相应的DLL动态库, 程序才能运行 L 9h‑L @  
release
版本: 正式发布时使用 :;#^gv H  
debug
版本: 调试阶段使用 

你可能感兴趣的:(error LNK2001: unresolved external symbol _main解决办法)