1 **:
本節介紹cmake裡最常用的三個命令,分別是cmake_minimum_required; project; add_executable等。
cmake是個好東西,在使用vtk, itk, igstk, opencv, dcmtk等開源工具包時,是離不開cmake的,甚至有時你使用 fltk , qt等介面開發工具時,也經常會看到cmake,你會發現在好多目錄下會有乙個檔案」cmakelists.txt」,這個檔案就是使用cmake構建工程環境的重要檔案。了解一點關於cmake的內容,對使用以上提到的一些開源工具包是灰常有幫助的,而且你會發現,cmake用久了,你會覺得它是很可愛很好用的東西。
如果你檢索到了我關於cmake的這些文章時,我是假定你已經對cmake的作用有所了解。下面我們從最簡單的入手來看看cmake怎麼使用:寫乙個hellocmake.cpp檔案,裡面就簡單地輸出一行字串:」study cmake together - hello cmake!」,一起看看怎麼用cmake來構建工程。
然後,還要確保你的機子已經安裝了一種編譯器,我機子上安裝的是vs2008。你也可以選擇其他編譯器,建議用vs2008或以上版本的,個人覺得比較好用。
接著在你機子的某個盤裡建乙個新的資料夾,如我這裡的完整路徑是:d:\cmake\cmake-study\hellocmake; 然後在hellocmake資料夾裡建立乙個hellocmake.cpp檔案,裡面的**如下:
#include
int main()
std::cout<
然後在hellocmake資料夾裡建立乙個cmakelists.txt檔案,注意檔名不能是別的,必須叫這個名字。裡面的內容如下:
cmake_minimum_required(version 2.6)
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 2.6)
2. project(hellocmake)
3. add_executable(hellocmake hellocmake.cpp)
第1行,cmake_minimum_required(version 2.6)這是對cmake版本的要求,基本上每個cmakelists.txt檔案裡都會有這句**,cmake_minimum_required是cmake裡的命令,可大寫小寫。version這個關鍵字必須是大寫,而且不能省略;2.6就是cmake的版本號,現在的版本是2.8.3。
第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)
muduo庫學習筆記三 cmake使用解析
在linux平台下使用cmake生成makefile並編譯的流程如下 a 編寫cmake配置檔案cmakelists.txt b 執行命令cmake path生成makefile,path是cmakelists.txt所在的目錄。c 使用make命令進行編譯。其中,a既是下文注釋的檔案,b c都由m...
axios高階使用 1 更多參考axios文件
proxy 建立例項時設定配置的預設值 var instance axios.create 在例項已建立後修改預設值 instance.defaults.headers.common authorization auth token 使用由庫提供的配置的預設值來建立例項 此時超時配置的預設值是 0 ...
使用FMDB 1 基本操作
1.例項化fmdatabase paths ios下document路徑,document為ios中可讀寫的資料夾 nsarray paths nssearchpathfordirectoriesindomains nsdocumentdirectory,nsuserdomainmask,yes n...