LNK2001 unresolved external symbol _winmain@16

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LNK2001 unresolved external symbol _winmain@16相关的知识,希望对你有一定的参考价值。


网上找的例子:

刚才想新建一个VC++ Console的程序,试验一下自己想的代码。
但没注意,在创建的时候应该是误选择了“Win32 Application”,而不是想要的“Win32 Console Application”。所以即使只写void main()这条语句都不能通过“链接”(编译能通过),出错信息如上面。

找了半天,开始以为是Project Settings里面的C++选项卡下的Code Generation中的毛病,或者是Precompiled Haders中的毛病,再者是Link选项卡中出了毛病,但改了一些地方,就是不好使!汗啊!~

最后终于发现出错的地方了,选择“Win32 Application”,
1.在C++Preprocessor中processor definitions中的设置是“WIN32,_DEBUG,_WINDOWS,_MBCS”
2.而在Link选项卡下,最下面的Project options中的内容是“kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /incremental:yes /pdb:"Debug/123.pdb" /debug /machine:I386 /out:"Debug/123.exe" /pdbtype:sept ”

注意两处:
_WINDOWS

/subsystem:windows
将这两处改成_CONSOLE和/subsystem:console就可以解决问题了。

其实这就是将“Win32 Application”改成了“Win32 Console Application”。

呵呵,没想到一次失误到学到了一点知识!~

 

自己遇到的错误:

LNK2001

解决方法:

project - settings -  link - project options:以下内容

winmm.lib ws2_32.lib D:\\work\\code_130527\\platform\\build1\\lib\\Debug\\ovsdk.lib D:\\work\\code_130527\\platform\\build1\\lib\\Debug\\comm.lib winmm.lib ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /version:0.0 /subsystem:windows

subsystem:windows 改成 subsystem:console 重新编译即可 

以上是关于LNK2001 unresolved external symbol _winmain@16的主要内容,如果未能解决你的问题,请参考以下文章

error LNK2001: unresolved external symbol __imp__WSAStartup@8 SOCKET(转)

LNK2001 unresolved external symbol _winmain@16

c语言 调试错误想不通 error LNK2001: unresolved external symbol

xxx.obj : error LNK2001: unresolved external symbol _printend

C++静态成员变量必须在类的定义之外进行声明 (error LNK2001: unresolved external symbol)

C 语言 error LNK2001: unresolved external symbol _fprint