MSVCRTD.lib(crtexew.obj) : error LNK2019: 無法解析的外部符號 _WinMain@16

一、問題描述

MSVCRTD.lib(crtexew.obj) : error LNK2019: 無法解析的外部符號 _WinMain@16,該符號在函數 ___tmainCRTStartup 中被引用

Debug\jk.exe : fatal error LNK1120: 1 個無法解析的外部命令

error LNK2001: unresolved external symbol _WinMain@16

debug/main.exe:fatal error LNK 1120:1 unresolved externals

error executing link.exe;

二、原因及解決辦法

原因:產生這個問題的真正原因是c語言運行時找不到適當的程序入口函數,

一般情況下,如果是windows程序,那麼WinMain是入口函數,在VS2010中新建項目爲win32項目”如果是dos控制檯程序,那麼main是入口函數,在VS2010中新建項目爲win32控制檯應用程序”而如果入口函數指定不當,很顯然c語言運行時找不到配合函數,它就會報告錯誤。

解決辦法:修改設置適應你的需求

如果是windows程序:

1.菜單中選擇 Project->Properties, 彈出Property Pages窗口

2.在左邊欄中依次選擇:Configuration Properties->C/C++->Preprocessor,然後在右邊欄的Preprocessor Definitions對應的項中刪除_CONSOLE, 添加_WINDOWS.

3.在左邊欄中依次選擇:Configuration Properties->Linker->System,然後在右邊欄的SubSystem對應的項改爲Windows(/SUBSYSTEM:WINDOWS)

 

如果是控制檯程序:

1.菜單中選擇 Project->Properties, 彈出Property Pages窗口

2.在左邊欄中依次選擇:Configuration Properties->C/C++->Preprocessor,然後在右邊欄的Preprocessor Definitions對應的項中刪除_WINDOWS, 添加_CONSOLE.

3.在左邊欄中依次選擇:Configuration Properties->Linker->System,然後在右邊欄的SubSystem對應的項改爲CONSOLE(/SUBSYSTEM:CONSOLE)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章