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...