# cmake 最低版本要求
cmake_minimum_required (version 2.8)
# 專案名稱
project (main)
# 是否使用自己的 tools 庫
option (use_mymath "use provided math implementation" on)
# 是否加入 mathfunctions 庫
if (use_mymath)
include_directories ("$")
add_subdirectory (tools)
set (extra_libs $ tools)
endif (use_mymath)
#cmake 對原始碼的設定
configure_file (
"$/config.h.in"
"$/config.h"
)include_directories ("$")
# 查詢當前目錄下的所有原始檔, 並將名稱儲存到 dir_srcs 變數
aux_source_directory(main/ dir_srcs)
# 指定生成目標
add_executable(main $)
# 新增鏈結庫
target_link_libraries(main $)
注意:configure_file的設定必須在use_mymath定義之後,否則use_mymath預設為off
#include #include #include "config.h"
#ifdef use_mymath
#include "tools/math.h"
#else
#include #endif
int main(int argc, char* ar**)
double input = atof(ar**[1]);
int n = atoi(ar**[2]);
double out = pow(input, n);
printf("pow(%f, %d) is %f\n", input, n, out);
}
包含配置檔案的標頭檔案,選擇性進行編譯
cmake簡單入門1
查詢當前目錄下的所有原始檔,並將名稱儲存到 dir lib srcs 變數 aux source directory dir lib srcs 生成鏈結庫 add library tools cmake 最低版本要求 cmake minimum required version 2.8 專案名稱 p...
cmake入門2子目錄
目錄環境 背景方式一 源 方式二 庫 ubuntu18 cmake version 3.17.3 把工具類放到單獨的資料夾下,以便結構清晰。比如現在有乙個utils的資料夾,下面放自己編寫好的工具類。目錄結果如下 cmakelists.txt cmake minimum required versi...
CMake入門實戰
編寫cmake配置檔案cmakelists.txt。執行命令cmake path或者ccmake path生成makefile。其中,path是cmakelists.txt所在的目錄。使用make命令進行編譯。首先編寫 cmakelists.txt 檔案,並儲存在與main.cc原始檔同個目錄下 c...