關於windows在vscode中配置opencv遇到的問題及解決辦法總結


關於windows在vscode中配置opencv遇到的問題及解決辦法總結

最近正在學習opencv,平時變成喜歡使用vscode。喜歡使用它主要是因為vscode使用起來比較方便而且美觀,需要使用到相關的模塊直接下載插件即可,頂多就再多配置一個編譯環境如gcc 、clang 、java、python等。

opencv的編譯過程比較簡單,搭建百度既可以完成,這里簡要說一下就可以了。opencv的代碼包含兩部分,一部分是他的核心代碼包,一個是他的擴展模塊。自行編譯的話建議將擴展模塊一起編譯出來。不然,opencv里面提前編譯好的也只有核心部分,自此編譯就沒有必要了。cmake時記得將一個xxx_word選項勾選上,還有一個就是有一個extra_xxx的變量找到並將他的值指向你的擴展模塊的module文件夾即可。如果有報錯說網絡問題的就去cmakedownload.log里面去找找下載的鏈接,自己找梯子下載好重新命名替換原來的為下載完成的文件。然后編譯即可。dubug和release版本都要編譯

編譯的時候使用visual studio和visual studio code都可以,如果使用后者需要安裝C/C++、CMake、CMake Tool插件。然后配置CMake Tool的生成器即可,這里建議使用Visual Studio 1x 。個人感覺后者編譯器來占用的內存要少很多,而且看起來顯卡也在使用(20+%),而visual studio編譯的時候顯卡幾乎沒用,僅為0.01-0.3%,占用內存也比較多。

編譯完成之后將編譯好的文件,放到你的安裝目錄下面。然后在環境變量里面新建一個變量OpenCV_DIR只想你的安裝目錄。

配置opencv在vscode中的環境

opencv在vscode中的配置可以使用C/C++來配置,但是.vscode文件夾里面的三個文件配置起來很是麻煩,這里使用的是cmake來自動配置opencv,cmakelist如下:

# project name
PROJECT(opencv_test)
# requirement of cmake version
cmake_minimum_required(VERSION 3.5)
# set the directory of executable files
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${opencv_test_SOURCE_DIR}/bin)
# find required opencv
find_package(OpenCV REQUIRED)
# directory of opencv headers
include_directories(${OpenCV_INCLUDE_DIRS})
# name of executable file and path of source file
add_executable(opencv_test src/opencv_test.cpp)
# directory of opencv library
link_directories(${OpenCV_LIBRARY_DIRS})
# opencv libraries
target_link_libraries(opencv_test ${OpenCV_LIBS})

cmake自己研究的不是很深,因此不過多解釋,大家直接復制我的然后改名稱就可以使用了。

配置的時候不要使用MinGW Makefiles生成器,要使用Visual Studio 1x生成器。之前使用MinGW Makefiles在編譯的時候來時說找不到文件還說:

but it set OpenCV_FOUND to FALSE so package "OpenCV" is considered to be [cmake]   NOT FOUND.

然后使用Visual Studio 1x生成器卻沒有任何問題,運行的好好的,很是不解。。。

注意:這里不建議使用vscode里面的插件clangd,因為它和C/C++插件會沖突,雖然clang有很多優點而且代碼提示我也非常喜歡,但是配置起來比較麻煩,clangd需要使用compile_commands.json,至少我是不太會使用,經常出現找不到頭文件的情況。因為作者使用vscode配置硬件,編寫程序時很多硬件的輔助插件僅支持C/C++,使用clangd就很雞肋。對於opencv來說的話也不要使用clangd了,因為compile_commands.json文件Visual Studio 1x是不會生成的,也就是說你找不到頭文件而且還配置不了,要么換生成器但是opencv程序又會運行不了,因此還是放棄吧。

如果大家有配置clangd的相關辦法,歡迎大家留言分享,我會及時改進。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM