1. 程式人生 > >ubuntu下安裝cmake及cmake簡單使用

ubuntu下安裝cmake及cmake簡單使用

前言

最近突然想將開發環境轉移到linux上,同時也準備閱讀些github上的開原始碼,發現現在開源專案一般都是用cmake管理的。所以就在自己的虛擬機器上搗鼓了一天。一開始我也不知道cmake是啥,後來通過折騰也大概知道其作用,它所做的事其實就是告訴編譯器如何去編譯連結原始碼。你也許想問不是有makefile嗎,為什麼還要它?這裡就牽涉到跨平臺問題。在windows平臺下是通過project檔案去管理這些的,如果不用cmake,那我們為window和linux系統就要寫對應的project檔案和makefile檔案,這無疑是一件繁瑣的事,而我們只要編寫一次cmake,就可以用在各個平臺,而且其語法也簡單。這就是所謂的“write once,use everywhere”。

安裝過程

  1. 首先去官網下載安裝包,選擇“XX.tar.gz”原始碼安裝包 
    這裡寫圖片描述

  2. 輸入如下命令

    $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