Cmake自動配置openCV

2022-04-09 23:23:10 字數 2392 閱讀 9234

然後,還要確保你的機子已經安裝了一種編譯器,我機子上安裝的是vs2010。你也可以選擇其他編譯器,建議用vs2008或以上版本的,個人覺得比較好用。

接著在你機子的某個盤裡建乙個新的資料夾,如我這裡的完整路徑是:d:\cmake\cmake-study\hellocmake; 然後在hellocmake資料夾裡建立乙個hellocmake.cpp檔案,裡面的**如下:

#include

int main()

std::cout<

然後在hellocmake資料夾裡建立乙個cmakelists.txt檔案,注意檔名不能是別的,必須叫這個名字。裡面的內容如下:

cmake_minimum_required(version 3.3.1)

project(hellocmake)

add_executable(hellocmake hellocmake.cpp)

接著在hellocmake的同級目錄裡建立乙個新的資料夾,就叫做hellocmake-bin,在我機子上的完整路徑是:d:\cmake\cmake-study\hellocmake-bin,你可以針對自己的目錄路徑對號入座。

然後開啟cmake程式,介面如圖(1):

圖(1)                                   

圖(2)

接著把包含cmakelists.txt和hellocmake.cpp檔案的完整路徑給」where is the source code」,把最後建立的hellocmake-bin目錄的完整路徑給」where to build the binaries」,然後按cofigure,介面如圖(2)。

configure完了以後,再按generate,直到所有的紅色選項都變成灰色為止。介面如圖(3)。然後開啟hellocmake-bin,你會發現原來空的資料夾裡面自動生成了好多檔案,如圖(4)。

圖(3) 

圖(4)

到此為止,工程構建完成,開啟hellocmake-bin目錄下的hellocmake.sln,裡面有三個工程,分別是:all_build;hellocmake;zero_check。這三個工程的大概作用如下(個人理解而已),hellocmake就不用說了,自己要建立的那個工程;all_build是管理整個專案的工程;zero_check是實時監視cmakelists.txt檔案變化的工程,一旦cmakelists.txt裡的內容發生了任何變化,zero_check就會告訴編譯器要重新構建整個工程環境。所以,你可以先把工程關掉,開啟cmakelists.txt檔案,更改裡面的內容以後,把根據以上說的步驟走一遍cmake;你也可以在編譯器環境(如vs2008)中更改cmakelists.txt檔案,然後直接f7編譯工程。如果你選擇後者,你會發現如圖(5)所示的現象發生。

另外乙個經常看某些童鞋問的,就是當彈出圖(6)所示的介面時要怎麼辦?能怎麼辦?介面上提示已經灰常清楚了,指定exe的路徑給它,然後點ok就可以了;出現這種情況的原因是你把沒有生成exe可執行檔案的工程設為啟動工程了,如圖(6)所示,你會發現all_build這個工程名字是黑體顯示的,表示它是啟動工程;或者你把生成exe可執行檔案的工程,如這裡的hellocmake右擊->設定為啟動工程,也不會出現如圖(6)所示的介面。

圖(5)

圖(6)

把cmakelists.txt裡的內容再羅列出來:

1. cmake_minimum_required(version 3.3.1)

2. project(hellocmake)

3. add_executable(hellocmake hellocmake.cpp)

第1行,cmake_minimum_required(version 3.3.1)這是對cmake版本的要求,基本上每個cmakelists.txt檔案裡都會有這句**,cmake_minimum_required是cmake裡的命令,可大寫小寫。version這個關鍵字必須是大寫,而且不能省略;3.3.1就是cmake的版本號。

第2行,project(hellocmake),project也是cmake的命令,裡面的引數hellocmake是你要生成的工程的名字,換句話說就是生成的***.sln或者***.dsw等工程專案檔案的名字。

第3行,add_executable(hellocmake hellocmake.cpp),add_executable同樣是cmake的命令,鏈結有關的原始檔,然後生成exe可執行檔案,這是這個命令的作用。第乙個引數是生成的exe檔案的檔名,一般與project裡的工程名一致,這樣編譯生成的檔案就分別是hellocmake.sln和hellocmake.exe,當然也可以不一樣。add_executable()後面的是乙個引數列表,可帶多個要編譯的檔名,中間以空格或回車等隔開,如可以加入:

add_executable(hellocmake hellocmake.cpp hellocmake.h)

注意:如果出現dos視窗一閃而過的情況,可以使用ctrl+f5編譯執行。

cmake編譯opencv專案

其他方法與優缺點 example.cpp include include using namespace cv using namespace std intmain int argc,char ar imshow demo src waitkey 0 return0 在專案檔案中新建cmakeli...

CMAKE自動構建

cmake 入門實戰 cmake 手冊詳解 兩個自己寫的cmakelists.txt用到了常用的編譯功能 cmake 最低版本號要求 cmake minimum required version 2.8 指定c編譯器 set cmake c compiler arm none linux gnuea...

cmake 新增opencv 動態庫

cmakelists.txt 新增opencv 動態庫 cmake minimum required version 2.8 專案資訊 project server set cmake c compiler g add compile options std c 11 查詢當前目錄下的所有原始檔 並...