1. 程式人生 > >使用VS2017 自帶cmake編譯 opencv3.4+contrib

使用VS2017 自帶cmake編譯 opencv3.4+contrib

一、前言

VS2017更新之後添加了cmake支援,雖然使用並沒有cmake-gui可以避免很多cmake-gui的問題。筆者就是因為cmake-gui編譯opencv失敗才採用的vs2017編譯。

二、準備

  1. 為vs2017安裝cmake

    • 開啟vs,點選”工具 -> 獲取工具和功能”
    • 在單個元件中勾選“==用於cmake的visual c工具==”和“==Visual c++ tools for cmake and linux==”
      這裡寫圖片描述
      這裡寫圖片描述
    • 點選修改,等待安裝完成

三、編譯

  1. 開啟vs,選擇“檔案->開啟->CMake”,選擇你解壓的opencv目錄,該目錄下一定要有“CMakeLists.txt”
  2. 開啟之後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/”目錄下
    這裡寫圖片描述