1. 程式人生 > >VS2015 error LNK2019 無法解析的外部符號 [email protecte

VS2015 error LNK2019 無法解析的外部符號 [email protecte

前言

上一篇文章中,為了編譯OpenCV的示例程式碼,然後搭建環境, 最後想直接執行示例demo,我在建立新工程的時候,直接建立了一個win32視窗專案,然後環境配置完成後,將opencv 的示例程式碼kalman.cpp直接匯入到新建的vs工程中進行編譯,直接報錯:

錯誤	LNK2019	無法解析的外部符號 [email protected],該符號在函式 "int __cdecl invoke_main(void)" ([email protected]@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專案”,這時候修改一下配置就可以了。

解決辦法:
右鍵工程名, 開啟屬性,依次找到以下路徑:
在這裡插入圖片描述

然後將這裡的_WINDOWS刪除,並新增_CONSOLE
在這裡插入圖片描述

接下來再依次點選如下路徑:
在這裡插入圖片描述

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

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

參考地址:https://blog.csdn.net/playstudy/article/details/6661868