使用VS2017 自帶cmake編譯 opencv3.4+contrib
阿新 • • 發佈:2019-01-25
一、前言
VS2017更新之後添加了cmake支援,雖然使用並沒有cmake-gui可以避免很多cmake-gui的問題。筆者就是因為cmake-gui編譯opencv失敗才採用的vs2017編譯。
二、準備
為vs2017安裝cmake
- 開啟vs,點選”工具 -> 獲取工具和功能”
- 在單個元件中勾選“==用於cmake的visual c工具==”和“==Visual c++ tools for cmake and linux==”
- 點選修改,等待安裝完成
三、編譯
- 開啟vs,選擇“檔案->開啟->CMake”,選擇你解壓的opencv目錄,該目錄下一定要有“CMakeLists.txt”
- 開啟之後vs會生成“CMakeSettings.json”配置檔案,開啟該檔案並配置opencv_contrib目錄,下面是我的部分配置
{
"name": "x86-Debug",
"generator": "Visual Studio 15 2017",
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x86" ],
"buildRoot": "${projectDir}\\cmake_build\\${name}", //生成的工程檔案目錄
"installRoot" : "${projectDir}\\cmake_install\\${name}", //生成的安裝檔案目錄
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"variables": [ //新增或改變配置引數
{
"name": "BUILD_opencv_world", //編譯成一個合集檔案
"value": "ON"
},
{
"name": "OPENCV_EXTRA_MODULES_PATH" , //配置opencv_contrib目錄
"value": "E:\\opencv\\sources\\opencv_contrib-3.4.0\\modules"
},
{
// 不使用CUDA
// 由於我安裝了CUDA,但是使用CUDA卻編譯不過去,暫時還沒有解決,就先不使用CUDA了
"name": "WITH_CUDA",
"value": "off"
}
]
},
{
"name": "x64-Debug",
"generator": "Visual Studio 15 2017 Win64",//64位
"configurationType": "Debug",
"inheritEnvironments": [ "msvc_x64" ],
"buildRoot": "${projectDir}\\cmake_build\\${name}",
"installRoot": "${projectDir}\\cmake_install\\${name}",
"cmakeCommandArgs": "",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"variables": [
{
"name": "BUILD_opencv_world", //編譯成一個合集檔案
"value": "ON"
},
{
"name": "OPENCV_EXTRA_MODULES_PATH",
"value": "E:\\opencv\\sources\\opencv_contrib-3.4.0\\modules"
},
{
"name": "WITH_CUDA",
"value": "off"
}
]
}
- 儲存“CMakeSettings.json”檔案,vs會自動生成工程
由於要下載很多ffmpeg和ippicv等依賴庫,而且速度很慢。解決辦法:
檢視正在下載的檔案,如:ippicv_2017u3_win_intel64_general_20170822.zip
- 下載完成之後解壓,找到檔案“ippicv_2017u3_win_intel64_general_20170822.zip”,將其複製到“opencv源工程資料夾/.cache/ippicv/”下,替換掉“0421e642bc7ad741a2236d3ec4190bdd-ippicv_2017u3_win_intel64_general_20170822.zip”
如果你覺得麻煩,可以直接到這裡下載整個資源包
生成完成之後,開啟“opencv源工程資料夾/cmake_build/x86-Debug/OpenCV.sln”(這個目錄是上面配置檔案設定的)
- 選擇“INSTALL”,右鍵生成即可,生成的檔案在“opencv源工程資料夾/cmake_install/”目錄下