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
經過網上查找問題,終于找到原因,是因為c語言運作時找不到适當的程式入口函數,一般情況下,如果是windows程式,那麼WinMain是入口函數,就比如我這裡建立的“win32項目”
如果是dos控制台程式,那麼main是入口函數,建立項目為“win32控制台應用程式”
而如果入口函數指定不當,很顯然c語言運作時找不到配合函數,它就會報告錯誤。
是以我這裡出錯的原因是我導入的kalman.cpp是一個dos控制台程式,但是我建立項目時選擇的是“win32項目”,這時候修改一下配置就可以了。
2.解決辦法
右鍵工程名, 打開屬性,依次找到以下路徑:
然後将這裡的_WINDOWS删除,并添加_CONSOLE
接下來再依次點選如下路徑:
将這裡的子系統切換為“控制台”,修改完成後再次編譯即可。
相反,如果是windows程式,就按照相反的設定來配置即可,這裡就不再贅述了。