ubantu16.04 安裝cmake3.11及簡單使用

    現在有好幾種 Make 工具,例如 GNU Make ,QT 的 qmake ,微軟的 MS nmake,等等。這些 Make 工具遵循着不同的規範和標準,所執行的 Makefile 格式也千差萬別。這樣就帶來了一個嚴峻的問題:如果軟件想跨平臺,必須要保證能夠在不同平臺編譯。而如果使用上面的 Make 工具,就得爲每一種標準寫一次 Makefile ,這將是一件讓人抓狂的工作。

CMake就是針對上面問題所設計的工具:它首先允許開發者編寫一種平臺無關的 CMakeList.txt 文件來定製整個編譯流程,然後再根據目標用戶的平臺進一步生成所需的本地化 Makefile 和工程文件,如 Unix 的 Makefile 或 Windows 的 Visual Studio 工程。從而做到“Write once, run everywhere”。顯然,CMake 是一個比上述幾種 make 更高級的編譯配置工具

 安裝流程如下:

wget https://cmake.org/files/v3.11/cmake-3.11.0-rc4-Linux-x86_64.tar.gz

tar zxvf cmake-3.11.0-rc4-Linux-x86_64.tar.gz

sudo mv cmake-3.11.0-rc4-Linux-x86_64  /opt/cmake-3.11

sudo ln -sf /opt/cmake-3.11/bin/*  /usr/bin/

 

驗證:

cmake --version

 

一個簡單的例子:

mkdir cmake_test && cd cmake_test

編寫一個簡單的CPP程序

vim hello.cpp

#include <stdio.h>

int main()

{

   printf("Hello World\n");

   return 0;

}

 

 

編寫CMakeLists.txt,與hello.cpp位於同一目錄

project(hello)

cmake_minimum_required(VERSION 3.11)

aux_source_directory(. DIR_SRCS)

add_executable(hello ${DIR_SRCS})

CMakeLists.txt 的語法比較簡單,由命令、註釋和空格組成,其中命令是不區分大小寫的。符號 # 後面的內容被認爲是註釋。命令由命令名稱、小括號和參數組成,參數之間使用空格進行間隔。

對於上面的 CMakeLists.txt 文件,依次出現了幾個命令:

  1. project:參數值是 hello,該命令表示項目的名稱是 hello。不是強制性的,但最好始終都加上。
  2. cmake_minimum_required:指定運行此配置文件所需的 CMake 的最低版本;
  3. aux_source_directory:CMake 會將當前目錄所有源文件的文件名賦值給變量 DIR_SRCS ,
  4. add_executable: 指示變量 DIR_SRCS 中的源文件需要編譯成一個名稱爲 hello 的可執行文件

在該目錄下輸入(最好是在創建一個build文件夾,進入該文件夾,然後cmake .. ):

cmake .

然後再輸入:

make

最後輸入:

./hello

就可得到最後結果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章