OpenCV編譯執行出錯(編譯環境問題)

2021-09-25 16:21:54 字數 1394 閱讀 2018

一、問題:lnk2019 無法解析的外部符號 winmain,該符號在函式 「int __cdecl invoke_main(void)」 (?invoke_main@@yahxz) 中被引用

在編譯opencv4.1過程**現的問題。

二、可能的原因

主要是因為c/c++執行時找不到適當的程式入口函式,

一般情況下,在windows程式,那麼winmain是入口函式,在vs2015中新建專案為「win32專案」

在dos控制台程式,則main是入口函式,在vs2015中新建專案為「win32控制台應用程式」

當入口函式指定不合適時,程式執行時找不到相配合函式,出現上述錯誤。

三、通過修改對應設定適應編譯環境需求

如果是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)

Vs2015OpenCV靜態編譯出錯

同樣的 在vs2010中正確的靜態編譯成功,但是在vs2015中就出現以下類似的問題,乙個乙個按照網上同志們所給出的解決方法忽略掉或者新增了之後還是總會繞回到原來的問題,所以後來嘗試在低版本的vs中進行靜態編譯,就沒有問題了。下面的問題中,尤其是libcpmt.lib之類的,網上都說忽略就可以了,但...

編譯opencv檔案

為了方便g 管理opencv的庫,使用pkg config管理 首先修改 usr local lib pkgconfig 目錄下的opencv.pc 修改prefix install usr local 指向opencv的標頭檔案和庫檔案,注意 install usr local應該有兩個資料夾in...

OpenCV交叉編譯

參考幾篇部落格 1.交叉編譯opencv2.31與移植至arm9 2.編譯opencv 3.交叉編譯opencv2.3.1 這裡的2.4.10是opencv的版本號 不過後來感覺這裡應該填目標機,即arm的linux版本號 一說processor這裡可以填上arm 上面這兩個括號中的內容都沒有驗證 ...