ubuntu下安裝cmake及cmake簡單使用
阿新 • • 發佈:2018-12-30
前言
最近突然想將開發環境轉移到linux上,同時也準備閱讀些github上的開原始碼,發現現在開源專案一般都是用cmake管理的。所以就在自己的虛擬機器上搗鼓了一天。一開始我也不知道cmake是啥,後來通過折騰也大概知道其作用,它所做的事其實就是告訴編譯器如何去編譯連結原始碼。你也許想問不是有makefile嗎,為什麼還要它?這裡就牽涉到跨平臺問題。在windows平臺下是通過project檔案去管理這些的,如果不用cmake,那我們為window和linux系統就要寫對應的project檔案和makefile檔案,這無疑是一件繁瑣的事,而我們只要編寫一次cmake,就可以用在各個平臺,而且其語法也簡單。這就是所謂的“write once,use everywhere”。
安裝過程
-
首先去官網下載安裝包,選擇“XX.tar.gz”原始碼安裝包
-
輸入如下命令
$tar -zxvf xx.tar.gz
$./bootstrap
$make
$make install
輸入以上命令後就已經可以在ubuntu上安裝好cmake
編寫簡單的cmake
使用cmake首先得有個CMakeList.txt檔案,你需要把配置資訊寫在該檔案中,然後通過cmake去處理該檔案。
將設有下面一個main.cpp檔案
//main.cpp檔案
#include<iostream>
using namespace std;
int main(){
cout <<"hello world!"<<endl;
return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
這時候我們就可以寫個如下的CMakeList.txt檔案
#cmake最小需要版本
cmake_minimum_required(VERSION 2.8)
#專案名字
project(HELLOWORLD)
#包含原程式,即把給定目錄下的源程式複製給變數DIR_SRC
aux_source_directory(DIR_SRC ./)
#生成程式
add_executable(helloworld ${DIR_SRC})
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
然後執行如下命令
$mkdir build
$cd build
$cmake ..
$make
$./helloworld
這樣就編譯好程式並執行。
新增靜態庫或者動態庫
而假設我們程式用到了在/usr/lib下的一個靜態庫libmy.a,那就需要新增如下兩個命令
#庫所在位置
link_directories(/usr/lib)
#程式編譯時候連結庫
target_link_libraries(helloworld my)
- 1
- 2
- 3
- 4
- 5