天天看點

Error LNK2019 無法解析的外部符号 [email protected],該符号在函數 “int __cdecl invoke_main(void)“1.錯誤2.解決辦法

1.錯誤

建立新工程的時候,直接建立了一個win32視窗項目,然後環境配置完成後,将opencv 的示例代碼kalman.cpp直接導入到建立的vs工程中進行編譯,直接報錯:

錯誤	LNK2019	無法解析的外部符号 [email protected],該符号在函數 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用	opencvDemo	E:\MyWork\VSProject\opencvDemo\opencvDemo\MSVCRTD.lib(exe_winmain.obj)	1
           
Error LNK2019 無法解析的外部符号 [email protected],該符号在函數 “int __cdecl invoke_main(void)“1.錯誤2.解決辦法

經過網上查找問題,終于找到原因,是因為c語言運作時找不到适當的程式入口函數,一般情況下,如果是windows程式,那麼WinMain是入口函數,就比如我這裡建立的“win32項目”

如果是dos控制台程式,那麼main是入口函數,建立項目為“win32控制台應用程式”

而如果入口函數指定不當,很顯然c語言運作時找不到配合函數,它就會報告錯誤。

是以我這裡出錯的原因是我導入的kalman.cpp是一個dos控制台程式,但是我建立項目時選擇的是“win32項目”,這時候修改一下配置就可以了。

2.解決辦法

右鍵工程名, 打開屬性,依次找到以下路徑:

Error LNK2019 無法解析的外部符号 [email protected],該符号在函數 “int __cdecl invoke_main(void)“1.錯誤2.解決辦法
Error LNK2019 無法解析的外部符号 [email protected],該符号在函數 “int __cdecl invoke_main(void)“1.錯誤2.解決辦法

然後将這裡的_WINDOWS删除,并添加_CONSOLE

Error LNK2019 無法解析的外部符号 [email protected],該符号在函數 “int __cdecl invoke_main(void)“1.錯誤2.解決辦法

接下來再依次點選如下路徑:

Error LNK2019 無法解析的外部符号 [email protected],該符号在函數 “int __cdecl invoke_main(void)“1.錯誤2.解決辦法

将這裡的子系統切換為“控制台”,修改完成後再次編譯即可。

相反,如果是windows程式,就按照相反的設定來配置即可,這裡就不再贅述了。

VS

繼續閱讀