ubuntu 15.10下cmake 的安装
生活随笔
收集整理的這篇文章主要介紹了
ubuntu 15.10下cmake 的安装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
因為原先ubuntu自帶的cmake有點舊,就想著安裝個最新的,可是直接安裝卡在了某一步上,后面有說明。現將正確的安裝方法列出來。
1.卸載原有的版本
sudo?apt-get?autoremove?cmake
2.?下載最新的cmake?:https://cmake.org/download/
3.?解壓:tar?-xzvf?cmake.tgz
?進入解壓的文件;?cd?cmake
????????????????????????????????依次執行?./bootstrap??(這一步我之前出錯過,不知道為什么,我卸載掉舊的就好了。)
make
make?install(需在root下進行)
后來看到了:?http://www.cnblogs.com/skyofbitbit/p/3699968.html?提到:
如果還沒有安裝CMake,源碼樹中提供了一個?bootstrap?腳本:
./bootstrap
make
make?install?
(注:make?install?一步是可選的,CMake?可以在編譯目錄下運行。)
一個已經安裝了的CMake也可以用于編譯新版本的CMake:
cmake?.
make
make?install
(注:make?install?一步是可選的,CMake?可以在編譯目錄下運行。)
附: 轉:CMake安裝和使用 ? CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。只是?CMake?的組態檔取名為?CmakeLists.txt。Cmake?并不直接建構出最終的軟件,而是產生標準的建構檔(如?Unix?的?Makefile?或?Windows?Visual?C++?的?projects/workspaces),然后再依一般的建構方式使用。這使得熟悉某個集成開發環境(IDE)的開發者可以用標準的方式建構他的軟件,這種可以使用各平臺的原生建構系統的能力是?CMake?和?SCons?等其他類似系統的區別之處。 CMake?可以編譯源代碼、制作程式庫、產生適配器(wrapper)、還可以用任意的順序建構執行檔。CMake?支持?in-place?建構(二進檔和源代碼在同一個目錄樹中)和?out-of-place?建構(二進檔在別的目錄里),因此可以很容易從同一個源代碼目錄樹中建構出多個二進檔。CMake?也支持靜態與動態程式庫的建構。 “CMake”這個名字是“cross?platform?make”的縮寫。雖然名字中含有“make”,但是CMake和Unix上常見的“make”系統是分開的,而且更為高階。 ? 下載: ??????在安裝metis-5.0時,安裝說明中要求必須安裝CMake2.8版本,下面是CMake的安裝和使用方法,記錄下來以便以后學習。 在網址?http://www.cmake.org/?下載你所需要的CMake源碼包cmake-2.8.8.tar..gz(版本不同,壓縮包后綴不同),分為Unix/linux版本?和?windows版本?。
1、安裝 有好幾種安裝CMake?的方法,因你所用的平臺而異。 (1)從源碼安裝 Windows 在CMake?下載頁面?上有已編譯好的二進制包。它提供的是一個可執行的安裝程序。你還可以下載源碼包并從源碼包編譯CMake。CMake下載頁面還提供了已釋出的源碼和訪問CVS的指令。 為了從源碼樹編譯CMake,你必須先要安裝最新的CMake二進制版本,因為要用它來編譯源碼樹。一旦裝好了二進制版本的CMake,你就可以像編譯其他項目一樣使用CMake編譯CMake了。一般來說,這意思是你要選擇CMake源碼目錄作為源目錄,然后再指定編譯出來的可執行程序結果的位置。
Linux,?Mac?OSX,?UNIX?&?Cygwin 在CMake?下載頁面?上有許多UNIX平臺上已經編譯好的二進制包。 下面有幾種從源碼樹編譯CMake的方法: 解壓:tar?xvf?cmake-2.8.8.tar.gz 進入解壓目錄:cd?cmake-2.8.8 進行如下操作:(選擇適合自己的操作步驟) 如果還沒有安裝CMake,源碼樹中提供了一個?bootstrap?腳本: ./bootstrap make make?install (注:make?install?一步是可選的,CMake?可以在編譯目錄下運行。) 一個已經安裝了的CMake也可以用于編譯新版本的CMake: cmake?. make make?install (注:make?install?一步是可選的,CMake?可以在編譯目錄下運行。) 在UNIX上,如果你不是使用的GNU?C++編譯器,你要告訴bootstrap?腳本你想用哪個編譯器。這可以在運行configure命令前通過設置CC和CXX環境變量完成。例如,在一個帶有7.3X編譯器的SGI平臺上,你可以像下面這樣編譯CMake: (setenv?CXX?CC;?setenv?CC?cc;?./bootstrap) make make?install 要查看bootstrap腳本的詳細參數,請執行?./bootstrap?–help (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?. ? 3、??CMake?cache cmake第一次運行的時候,它將產生一個文件叫CMakeCache.txt,該文件可以被看作一個配置文件,它里面的內容就像傳遞給configure命令的參數集,CMake?GUI可以幫你很容易修改它,當然也可以直接對該文件做修改;如果你的CMakeLists.txt文件做過較大幅度的修改,你需要從cache中刪除相關的選項,如果你還沒有手動編輯過cache文件,在你重新運行cmake之前需刪除它。 4、????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個先前的字符序列 ():保存一個匹配的表達式,以便以后使用 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
附: 轉:CMake安裝和使用 ? CMake是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。他能夠輸出各種各樣的makefile或者project文件,能測試編譯器所支持的C++特性,類似UNIX下的automake。只是?CMake?的組態檔取名為?CmakeLists.txt。Cmake?并不直接建構出最終的軟件,而是產生標準的建構檔(如?Unix?的?Makefile?或?Windows?Visual?C++?的?projects/workspaces),然后再依一般的建構方式使用。這使得熟悉某個集成開發環境(IDE)的開發者可以用標準的方式建構他的軟件,這種可以使用各平臺的原生建構系統的能力是?CMake?和?SCons?等其他類似系統的區別之處。 CMake?可以編譯源代碼、制作程式庫、產生適配器(wrapper)、還可以用任意的順序建構執行檔。CMake?支持?in-place?建構(二進檔和源代碼在同一個目錄樹中)和?out-of-place?建構(二進檔在別的目錄里),因此可以很容易從同一個源代碼目錄樹中建構出多個二進檔。CMake?也支持靜態與動態程式庫的建構。 “CMake”這個名字是“cross?platform?make”的縮寫。雖然名字中含有“make”,但是CMake和Unix上常見的“make”系統是分開的,而且更為高階。 ? 下載: ??????在安裝metis-5.0時,安裝說明中要求必須安裝CMake2.8版本,下面是CMake的安裝和使用方法,記錄下來以便以后學習。 在網址?http://www.cmake.org/?下載你所需要的CMake源碼包cmake-2.8.8.tar..gz(版本不同,壓縮包后綴不同),分為Unix/linux版本?和?windows版本?。
1、安裝 有好幾種安裝CMake?的方法,因你所用的平臺而異。 (1)從源碼安裝 Windows 在CMake?下載頁面?上有已編譯好的二進制包。它提供的是一個可執行的安裝程序。你還可以下載源碼包并從源碼包編譯CMake。CMake下載頁面還提供了已釋出的源碼和訪問CVS的指令。 為了從源碼樹編譯CMake,你必須先要安裝最新的CMake二進制版本,因為要用它來編譯源碼樹。一旦裝好了二進制版本的CMake,你就可以像編譯其他項目一樣使用CMake編譯CMake了。一般來說,這意思是你要選擇CMake源碼目錄作為源目錄,然后再指定編譯出來的可執行程序結果的位置。
Linux,?Mac?OSX,?UNIX?&?Cygwin 在CMake?下載頁面?上有許多UNIX平臺上已經編譯好的二進制包。 下面有幾種從源碼樹編譯CMake的方法: 解壓:tar?xvf?cmake-2.8.8.tar.gz 進入解壓目錄:cd?cmake-2.8.8 進行如下操作:(選擇適合自己的操作步驟) 如果還沒有安裝CMake,源碼樹中提供了一個?bootstrap?腳本: ./bootstrap make make?install (注:make?install?一步是可選的,CMake?可以在編譯目錄下運行。) 一個已經安裝了的CMake也可以用于編譯新版本的CMake: cmake?. make make?install (注:make?install?一步是可選的,CMake?可以在編譯目錄下運行。) 在UNIX上,如果你不是使用的GNU?C++編譯器,你要告訴bootstrap?腳本你想用哪個編譯器。這可以在運行configure命令前通過設置CC和CXX環境變量完成。例如,在一個帶有7.3X編譯器的SGI平臺上,你可以像下面這樣編譯CMake: (setenv?CXX?CC;?setenv?CC?cc;?./bootstrap) make make?install 要查看bootstrap腳本的詳細參數,請執行?./bootstrap?–help (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?. ? 3、??CMake?cache cmake第一次運行的時候,它將產生一個文件叫CMakeCache.txt,該文件可以被看作一個配置文件,它里面的內容就像傳遞給configure命令的參數集,CMake?GUI可以幫你很容易修改它,當然也可以直接對該文件做修改;如果你的CMakeLists.txt文件做過較大幅度的修改,你需要從cache中刪除相關的選項,如果你還沒有手動編輯過cache文件,在你重新運行cmake之前需刪除它。 4、????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個先前的字符序列 ():保存一個匹配的表達式,以便以后使用 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的ubuntu 15.10下cmake 的安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python去除停用词_python j
- 下一篇: 思科为计算机配置ip命令,cisco路由