初步學習CMake的使用

2022-03-24 20:23:02 字數 2300 閱讀 1371

初步學習cmake的使用

**:這幾天研究了一下cmake,因為感覺在之後的開發中,我們終有一天需要這個工具。

cmake

cmake 不再使你在構建專案時鬱悶地想自殺了.   --一位kde開發者。

1,背景知識:

cmake 是 kitware 公司以及一些開源開發者在開發幾個工具套件(vtk)的過程中衍生品,最終形成體系,成為乙個獨立的開放源**專案。專案的誕生時間是 2001 年。其官方**是 www.cmake.org,可以通過訪問官方**獲得更多關於 cmake 的資訊。cmake的流行其實要歸功於 kde4 的開發(似乎跟當年的 svn 一樣,kde 將**倉庫從 cvs 遷移到svn,同時證明了 svn 管理大型專案的可用性),在 kde 開發者使用了近 10 年 autotools之後,他們終於決定為 kde4 選擇乙個新的工程構建工具,其根本原因用 kde 開發者的話來說就是:只有少數幾個「編譯專家」能夠掌握 kde 現在的構建體系(admin/makefile.common),在經歷了 unsermake, scons 以及cmake 的選型和嘗試之後,kde4 決定使用 cmake 作為自己的構建系統。在遷移過程中,進展異常的順利,並獲得了 cmake 開發者的支援。所以,目前的 kde4 開發版本已經完全使用 cmake 來進行構建。像kdesvn,rosegarden 等專案也開始使用 cmake,這也注定了 cmake 必然會成為乙個主流的構建體系。

2,特點

cmake的特點主要有:

1, 開放源**(bsd許可證)。2, 跨平台。3, 能夠管理大型專案。4, 簡化編譯構件過程和編譯過程。5, 高效率。6, 可擴充套件。

3,安裝cmake

在ubuntu下直接 sudo apt-get install cmake,我裝的cmake的版本是2.4-patch 6, ubuntu版本7.04

4, 簡單使用

建立乙個臨時目錄 mkdir -p cmake/t1 && cd cmake/t1, 在這個資料夾下寫乙個最簡單的程式main.c。

main.c 檔案內容:

#include 

<

stdio

.h>

int main()

在它的同級目錄下寫乙個檔案,檔名是cmakelists.txt(注意檔名大小寫),cmakelists.txt的內容是:

project (hello)

set(src_list main.c)

message(status "this is binary dir " $)

message(status "this is source dir "$)

add_executable(hello $)

cmakelists.txt,指令碼內容如下

#標識我們專案的名稱

project(my_project)

#新增glib的include路徑

include_directories(/usr/include/glib)

#將common目錄的所有檔名寫到名為common_var的變數中去

aux_source_directory(common common_var)

# 將main.c main.h新增到project_file變數中

set(project_file main.c main.h)

# 將common_var變數和project_file變數的內容放到all_file變數中去

set(all_file $ $)

#根據all_file來生成可執行檔案bt_server

add_executable (bt_server $)

#鏈結動態鏈結庫libglib2.0.so和libpthread.so

target_link_libraries(bt_server libglib-2.0.so libpthread.so)

恩,編譯指令碼就這樣寫完了,簡單吧。

下面的步驟更簡單

在你的project下面建立乙個目錄,目錄名叫build #隨便你寫什麼名字都好,不過推薦用build,顯得正規一些:)

進入終端,然後敲擊命令 cmake..     #千萬要記得後面的兩個點。這表示cmakelists.txt檔案存放在上級目錄下

如果cmake成功,你會看到build目錄下生成乙個makefile檔案。此時在終端下敲擊make.你的工程就會被編譯成可執行檔案.

4.1, 開始構件

在這個工程下執行cmake . 

(. 代表本目錄)

然後就會生成這個檔案的makefile.

之後執行 make

,就可以生成hello程式了。

學習CMake使用

mkdir buidl cd build cmake make 編寫cmakelists.txt cmake minimum required version 2.8 project demo 可執行檔案的名稱 add executable main main.c 在前面cmakelists.txt...

CMake學習 四 使用變數

cmake同樣可以使用變數,比如當依賴檔案過多或需要生成的專案繁雜,就可以使用變數統一管理,也便於以後的條件編譯。一 定義變數 cmake 定義變數分顯式和隱式兩種。顯式定義即使用 set 等語句,可以自定義變數名稱。隱式定義是在使用其他語句時自動建立的變數,如 project 是定義專案名稱的,但...

CMAKE的學習筆記 初始CMAKE

cmake是乙個很強大的編譯工具 最近在看brpc,發現其中的編譯部分都是cmake來完成的,在囫圇吞棗編譯出第乙個demo後,我覺得自己該學習一下cmake了。1 及其簡單的例子 任何東西都是從hello world開始的,cmake也不例外,這裡就是乙個非常簡單的cmake 請注意,檔名必須是c...