MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16
生活随笔
收集整理的這篇文章主要介紹了
MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1.問題描述
做開源項(xiàng)目時,碰到VS2010報錯如下: MSVCRTD.lib(crtexew.obj) : error LNK2019: 無法解析的外部符號 _WinMain@16,該符號在函數(shù) ___tmainCRTStartup 中被引用?Debug\jk.exe : fatal error LNK1120: 1 個無法解析的外部命令;
開始以為是漢化的問題,因?yàn)檫@個錯誤指向的是找不到WinMain函數(shù),所以用了英文版的試了下,依舊報錯: error LNK2001: unresolved external symbol _WinMain@16?debug/main.exe:fatal error LNK 1120:1 unresolved externals?
error executing link.exe;
2.原因分析
產(chǎn)生這個問題的真正原因是c++語言運(yùn)行時找不到適當(dāng)?shù)某绦蛉肟诤瘮?shù),一般情況下,如果是windows程序,那么WinMain是入口函數(shù),在VS2010中新建項(xiàng)目為“win32項(xiàng)目”如果是dos控制臺程序,那么main是入口函數(shù),在VS2010中新建項(xiàng)目為“win32控制臺應(yīng)用程序”。而如果入口函數(shù)指定不當(dāng),很顯然c++語言運(yùn)行時找不到配合函數(shù),它就會報告錯誤。3.解決辦法
3.1?如果我們需要的是windows程序
Step1.菜單中選擇 Project->Properties, 彈出Property Pages窗口Step2.在左邊欄中依次選擇:Configuration Properties->C/C++->Preprocessor,然后在右邊欄的Preprocessor Definitions對應(yīng)的項(xiàng)中刪除_CONSOLE, 添加_WINDOWS. Step3.在左邊欄中依次選擇:Configuration Properties->Linker->System,然后在右邊欄的SubSystem對應(yīng)的項(xiàng)改為Windows(/SUBSYSTEM:WINDOWS)
3.2?如果我們需要的是控制臺程序
Step1.菜單中選擇 Project->Properties, 彈出Property Pages窗口Step2.在左邊欄中依次選擇:Configuration Properties->C/C++->Preprocessor,然后在右邊欄的Preprocessor Definitions對應(yīng)的項(xiàng)中刪除_WINDOWS, 添加_CONSOLE.
Step3.在左邊欄中依次選擇:Configuration Properties->Linker->System,然后在右邊欄的SubSystem對應(yīng)的項(xiàng)改為CONSOLE(/SUBSYSTEM:CONSOLE)
總結(jié)
以上是生活随笔為你收集整理的MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 飞鸽传书2007很给力
- 下一篇: C/C++中extern关键字详解与应用