@2018-12-18
【小記】
vs-2013 編譯 cJSON code in git-hub 時遇見問題 error LNK2019,解決如下
【問題描述】
MSVCRTD.lib(crtexew.obj) : error LNK2019: 無法解析的外部符号 [email protected],該符号在函數 ___tmainCRTStartup 中被引用
Debug\jk.exe : fatal error LNK1120: 1 個無法解析的外部指令
error LNK2001: unresolved external symbol [email protected]
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)
【來源】
轉載于:https://www.cnblogs.com/skullboyer/p/10138483.html