CMake入門 多目錄多原始檔簡單布局

2021-10-19 18:46:26 字數 1399 閱讀 6860

main.cc的內容

#include #include #include "math/mathfunctions.h"

int main(int argc, char *ar**)

double base = atof(ar**[1]);

int exponent = atoi(ar**[2]);

double result = power(base, exponent);

printf("%g ^ %d is %g\n", base, exponent, result);

return 0;

}

需要分別在專案根目錄 demo3 和 math 目錄裡各編寫乙個 cmakelists.txt 檔案。可以先將 math 目錄裡的檔案編譯成靜態庫再由 main 函式呼叫。

根目錄中的 cmakelists.txt :

# cmake 最低版本號要求

cmake_minimum_required (version 2.8)

# 專案資訊

project (multidirmultifiles)

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

# 並將名稱儲存到 dir_srcs 變數

aux_source_directory(. dir_srcs)

##或者使用file查詢目錄下的檔案

##查詢當前資料夾中的所有源**檔案,也可以通過set命令將所有檔案設定為乙個變數

#file(glob src_files $/*.cc)

##查詢設定當前資料夾中所有的標頭檔案

#file(glob head_files $/*.h)

# 新增 math 子目錄

add_subdirectory(math)

# 指定生成目標

add_executable(multidirmultifiles $)

#add_executable(multidirmultifiles $ $)

# 新增鏈結庫

target_link_libraries(multidirmultifiles mathfunctions)

子目錄中的 cmakelists.txt:

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

# 並將名稱儲存到 dir_lib_srcs 變數

aux_source_directory(. dir_lib_srcs)

# 指定生成 mathfunctions 鏈結庫

add_library (mathfunctions $)

1.

cmake處理多源檔案目錄的方法

cmake處理源 分布在不同目錄中的情況也很簡單,現在假設我們的源 分布情況如下 源 的分布情況 其中src目錄下的檔案要編譯成乙個鏈結庫 第一步,專案主目錄中的cmakelist.txt 在目錄step2中建立檔案cmakelist.txt檔案內容如下 目錄 step2 中的 cmakelists...

cmake處理多源檔案目錄的方法

cmake處理源 分布在不同目錄中的情況也很簡單,現在假設我們的源 分布情況如下 源 的分布情況 其中src目錄下的檔案要編譯成乙個鏈結庫 第一步,專案主目錄中的cmakelist.txt 在目錄step2中建立檔案cmakelist.txt檔案內容如下 目錄 step2 中的 cmakelists...

(三)CMake的多原始檔編譯

工作目錄下有多個原始檔,那麼cmakelists.txt 手動鍵入原始檔名稱,很麻煩。檔案結構如下 cmakelists.txt main.cpp multiple.cpp operation.cpp operation.h 檔案內容 multiple.cpp int mul int a,int b...