gcc make和CMake的區別

2021-10-25 02:47:27 字數 1387 閱讀 9315

- # cmake 最低版本號要求

cmake_minimum_required (version 2.8

)- # 專案資訊

project (demo1)

- # 指定生成目標

add_executable

(demo main.cc)

對於上面的 cmakelists.txt 檔案,依次出現了幾個命令:

cmake_minimum_required:指定執行此配置檔案所需的 cmake 的最低版本;

project:引數值是 demo1,該命令表示專案的名稱是 demo1 。

add_executable: 將名為 main.cc 的原始檔編譯成乙個名稱為 demo 的可執行檔案。

編譯專案

之後,在當前目錄執行 cmake . ,得到 makefile 後再使用 make 命令編譯得到 demo1 可執行檔案。

# cmake 最低版本號要求

cmake_minimum_required (version 2.8

) # 專案資訊

project (demo2)

# 指定生成目標

add_executable

(demo main.cc mathfunctions.cc)

同一目錄,多個原始檔

# cmake 最低版本號要求

cmake_minimum_required (version 2.8

) # 專案資訊

project (demo2)

# 查詢當前目錄下的所有原始檔

# 並將名稱儲存到 dir_srcs 變數

aux_source_directory

(. dir_srcs)

# 指定生成目標

add_executable

(demo $

)

aux_source_directory 命令,該命令會查詢指定目錄下的所有原始檔,然後將結果存進指定變數名。

cmake 會將當前目錄所有原始檔的檔名賦值給變數 dir_srcs ,再指示變數 dir_srcs 中的原始檔需要編譯成乙個名稱為 demo 的可執行檔案。

多個目錄,多個原始檔

對於這種情況,需要分別在專案根目錄 demo3 和 math 目錄裡各編寫乙個 cmakelists.txt 檔案。為了方便,我們可以先將 math 目錄裡的檔案編譯成靜態庫再由 main 函式呼叫。

根目錄中的 cmakelists.txt :

./demo3

|±-- main.cc

|±-- math/

|±-- mathfunctions.cc

|±-- mathfunctions.h

cmake 和 makefile的模板

這篇主要是最近在用makefile和cmake。這玩意吧,就賊容易忘,我就默默寫一篇小短文記錄一下。就是放乙個模板,以後直接在模板上做改動。executable為目標的可執行檔名,可以根據具體的情況對其進行修改。executable test 修改隱含規則中巨集 cross compile usr ...

CMake 安裝和使用

cmake是乙個跨平台工具,可以用簡單的語句來描述所有平台的安裝 編譯過程 cmake 並不直接建構出最終的軟體,而是產生標準的建構檔 如 unix 的 makefile,visual c 的 projects 等 解壓 新增環境變數 d cmake 3.9.0 win64 x64 bin 安裝指令...

CMAKE的學習筆記 初始CMAKE

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