1. 程式人生 > >win10X64 + vs2015通過Cmake編譯Opencv(一)

win10X64 + vs2015通過Cmake編譯Opencv(一)

寫在前面的話:

為什麼需要使用Cmake編譯安裝?在我目前的印象中主要有兩個原因:一是能夠看OpenCV的原始碼;而是能夠生成能在沒有opencv環境的電腦系統下執行的可執行檔案。同時建議大家先看看第七點,也就是我在編譯安裝過程中遇到過什麼錯誤,是什麼原因造成的之後再開始編譯安裝,這樣能避免重複我的錯誤

1.安裝vs2015

我的VS2015是中文專業版,修改了路徑,直接預設安裝;之後在網上找了一個祕鑰解除30天的試用期的限制。

2.解壓OpenCV3.1.0

直接執行.exe檔案即可,將解壓的資料夾放在自己想要的目錄中。解壓結果是一個名為opencv的資料夾,內容如下: 
opencv

3.安裝Cmake

這裡下載Cmake檔案,下載cmake-3.6.1-win64-x64.msi安裝(版本不對會出錯,詳情見後文,這裡截圖都是用我最開始錯誤版本的截圖)。

4.Cmake編譯Opencv

執行cmake軟體,制定source code路徑為OpenCV解壓所得的sources資料夾路徑,在選定生成路徑,如下圖:

cbuild

點選configure,選定編譯器為Visual Studio 14 2015,點選finish。

如果沒有錯誤的話,會出現configure done,忘了截圖 
手動勾選兩項內容: 
BUILD_EXAMPLES 
BUILD_opencv_world

再次點選Configure,又會出現configure done,結果如下:

configure done

再點選generate,生產sln工程

generate

5.開啟OpenCV.sln工程

開啟生產的sln工程,如下圖:

sln

點選生產->批生成,選擇如下:

注意:不要勾選ALL_BUILD對應的兩項,這是我首次嘗試的時候勾選的,失敗了。成功的那次沒有勾選 
生成

結果如下:

生成結果

6.配置

1.設定環境變數 
右擊 我的電腦->屬性->高階系統設定->環境變數->系統變數->編輯Path->新建, 新增路徑:D:\OpenCV3.1.0\opencv\cbuild\install\x64\vc14\bin

右鍵

高階系統設定 
環境變數 
系統變數 
新建

2.配置vs2015 
新建一個控制檯應用程式,勾選空專案。(用vs新建工程預設不截圖了。。。)

在 屬性管理器->Debug | x64->Microsoft.Cpp.x64.user 上 右鍵->屬性 開啟屬性頁

這裡寫圖片描述
這裡寫圖片描述

C/C++–> 常規 –> 附加包目錄,新增

這裡寫圖片描述

連結器—>附加庫目錄

這裡寫圖片描述

連結器—>輸入 
注意帶d和不帶d的順序,應該會有影響 
這裡寫圖片描述

7.測試

在該工程的cpp檔案中新增如下程式碼

#include <opencv2\opencv.hpp>

using namespace cv;

int main(int argc, char** argv)
{
    Mat img = imread("test.jpg");

    imshow("img", img);
    waitKey(0);

    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

相應路徑下有名為test.jpg的圖片

這裡寫圖片描述

執行(有可能需要重啟)

結果如下: 
這裡寫圖片描述

8.錯誤總結

錯誤一:vs2015模組不全

如果vs安裝有問題,就會出現如下錯誤: 
Error in configuration process, project files may be invalid. 
No CMAKE_CXX_COMPILER could be found.

error1 
error

錯誤提示為沒有找到相應的編譯器,這是由於vs2015相應模組沒有安裝的問題,點選新建專案,在已安裝模組的Visual C++下吧相應的模組安裝完畢就能解決這個錯誤

模組

錯誤二:缺少一些檔案

再次出現如下錯誤:

ffpemg

這是由於cmake時需要下載opencv_ffmpeg_64.dll,opencv_ffmpeg.dll以及ippicv_windows_20151201.zip,但是自動下載會出錯。所以需要先下好,放到相應的位置。檔案下載在這裡,裡面有使用方法

錯誤三:camke版本問題

我最開始下載的目前最新的版本cmake-3.7.0-rc3-win64-x64.msi。Cmake能夠通過,但是開啟Opencv.sln之後批生成是無法成功的,錯誤如下

這裡寫圖片描述
這裡寫圖片描述