CMake的安裝和使用
1. cmake安裝
(1)從原始碼安裝
下載cmake原始碼cmake-2.6.2.tar.gz
http://www.cmake.org/cmake/resources/software.html
編譯安裝
tar xvf cmake-2.6.2.tar.gz
cd cmake-2.6.2/
如果本機上不存在cmake,則:
./bootstrap
make
make install
如果本機上存在cmake,想安裝一個新版本,則:
cmake .
make
make install
(2)從二進位制安裝
sudo apt-get install cmake
2. cmake執行
(1)執行cmake with GUI
如果系統中有curses庫的話,cmake將生成一個可執行檔案ccmake,它是一個基於文字程式的終端,有點類似windows GUI。
在原始碼目錄中執行ccmake .,生成的二進位制檔案存放在原始碼目錄下
當然也可以在其他目錄下執行ccmake,只是要指定你想編譯的原始碼的路徑
ccmake的使用
當我們在原始碼目錄下執行ccmake . 時,終端將顯示如下:
當我們鍵入c時,ccmake將編譯
當我們鍵入方向鍵時,可以選擇cache entry
當我們鍵入enter時,可以編輯cache entry
當我們鍵入g時,將生成Makefile,然後退出
當我們鍵入h時,將彈出幫助文件
當我們鍵入q時,將退出ccmake
當我們鍵入t時,可以開啟或關閉advanced cache entry
(2)執行cmake from the command line
如果原始碼沒有太多的選項(在CMakeCache.txt檔案中),可以只用cmake .來產生Makefile。
如果原始碼選項太多,比如VTK,可以把引數-i傳遞給cmake,如:cmake -i .,
cmake將讓你為每一個cache file檔案中的選項指定一個值,也能讓你增加新的選項到檔案CMakeCache.txt中,或者使用ccmake,或者使用CMakeSetup。
當然,也可以傳遞設定選項的引數給cmake,如:
cmake -DVARIABLE:TYPE=VALUE .
2. CMake cache
cmake第一次執行的時候,它將產生一個檔案叫CMakeCache.txt,該檔案可以被看作一個配置檔案,它裡面的內容就像傳遞給configure命令的引數集,CMake GUI可以幫你很容易修改它,當然也可以直接對該檔案做修改;如果你的CMakeLists.txt檔案做過較大幅度的修改,你需要從cache中刪除相關的選項,如果你還沒有手動編輯過cache檔案,在你重新執行cmake之前需刪除它。
3. Cmake語法
(1)基本概念
cmake使用Cmake dfjs;dfasfLists.txt檔案,該檔案用include或者add_subdirectory命令來增加額外的輸入檔案。
註釋行以#開頭到該行結尾
命令是由命令名,加括號,括號中的引數用空白隔開,它可以是內建的命令如add_library,或者使用者定義的巨集或函式
所有的空格,包含空白符,空行,tabs,當然除了用來隔開引數的空白,都被忽略
(2)變數
。字串
一個字串是用雙引號括起來的,也可以被分隔在多行,如:
set(MY_STRING “this is a string with a
newline in
it”)
在一個字串中也可以用變數,如:
set(VAR “
hello
world
”)
當執行message(“/${VAR}=${VAR}”)後,將列印:
${VAR}=
hello
world
也可以message(“/n/thello world”)後,將列印:
hello world
。字串列表
cmake基本的資料型別為字串,也可以支援字串列表,如:
set(VAR a;b;c)或set(VAR a b c)將把VAR設定為字串列表
要使用VAR,可以用${VAR},如:
command(${VAR}),它相當於command(a b c)
如果想把一個字串列表作為單個引數傳遞給命令,可以用雙引號,如:
command(“${VAR}”),相當於command(“a b c”)
(3)流程控制
。判斷
if(var)
some_command(...)
endif(var)
當var的值不為empty,0,N,NO,OFF,FALSE,NOTFOUND
-NOTFOUND,some_command(...)將被執行
。迴圈
set(VAR a b c)
foreach(f ${VAR})
message(${f})
endforeach(f)
用變數f依次代替a,b,c執行message()
。巨集和函式定義
定義一個巨集hello
macro(hello MESSAGE)
message(${MESSAGE})
endmacro(hello)
呼叫巨集hello
hello(“hello world”)
定義一個函式hello
function(hello MESSAGE)
message(${MESSAGE})
endfunction(hello)
(4)正規表示式
很多CMake命令如if,會使用正規表示式作為引數,下面是正規表示式會用到的特殊字元:
^:匹配一行或一個字串的開頭
$:匹配一行或一個字串的結尾
.:匹配單個字元
[]:匹配方括號中任意字元或字串
[^]:匹配不是方括號中的字元或字串
[-]:匹配在dash任意一邊的字元
*:匹配0或多個先前的字元序列
+:匹配1或多個先前的字元序列
?:匹配0或1個先前的字元序列
():儲存一個匹配的表示式,以便以後使用
參考:http://www.cmake.org/cmake/help/documentation.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/756652/viewspace-715402/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ubuntu安裝CMakeUbuntu
- (CMake):CMake安裝及快速入門案例
- windows安裝cmake、opencv、qtWindowsOpenCVQT
- mysql在linux上cmake安裝方法(自己安裝版)MySqlLinux
- azkaban的安裝和使用
- FTP的安裝和使用FTP
- GitLab 的安裝和使用Gitlab
- yarn的安裝和使用Yarn
- Go的安裝和使用Go
- tcping的安裝和使用TCP
- Python的安裝和使用Python
- CentOS6.7下使用cmake編譯安裝MySQL5.5.32CentOS編譯MySql
- Windows下CMake編譯安裝OpenCVWindows編譯OpenCV
- ElasticSearch的安裝和使用,Postman的安裝,Kibana的安裝,EShead外掛的安裝ElasticsearchPostman
- VMware Workstation 的安裝和使用
- webpack的安裝和基本使用Web
- hydra 安裝和使用
- ActiveMq安裝和使用MQ
- docker安裝和使用Docker
- Elasticsearch 安裝和使用Elasticsearch
- StegSolve安裝和使用
- 安裝和使用 Composer
- httprunner 安裝和使用HTTP
- mongodb macos 下的安裝和使用MongoDBMac
- matomo的安裝使用和體驗
- nvm和npm的安裝與使用NPM
- linux下Anaconda的安裝和使用Linux
- Orbeon form 的安裝和使用教程ORBORM
- windows下Redis的安裝和使用WindowsRedis
- pyenv的安裝和簡單使用
- CMake 學習【七】—— 生成一個安裝器
- SSDB安裝和使用初探
- 如何安裝和使用DockerDocker
- Metabase 安裝和使用教程
- Flarum 安裝和使用教程
- Meilisearch 安裝和使用教程
- CMake 使用
- Sass 的入門安裝和基本使用