編寫cmake
配置檔案cmakelists.txt
。
執行命令cmake path
或者ccmake path
生成makefile
。其中,path
是cmakelists.txt
所在的目錄。
使用make
命令進行編譯。
首先編寫 cmakelists.txt 檔案,並儲存在與main.cc
原始檔同個目錄下:
# 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
的可執行檔案。
./demo2
|+--- main.cc
|+--- mathfunctions.cc
|+--- mathfunctions.h
cmakelists.txt
# cmake最低版本號要求
cmake_minimum_required (version 2.8)
# 專案資訊
project(demo01)
# 指定生成目標
add_executable(domo main.cc mathfunctions.cc)
唯一的改動只是在add_executable
命令中增加了乙個mathfunctions.cc
原始檔。這樣寫當然沒什麼問題,但是如果原始檔很多,把所有原始檔的名字都加進去將是一件煩人的工作。更省事的方法是使用aux_source_directory
命令,該命令會查詢指定目錄下的所有原始檔,然後將結果存進指定變數名。其語法如下:
aux_source_directory ()
因此,可以修改cmakelists.txt
如下:
# cmake 最低版本號要求
cmake_minimum_required (version 2.8)
# 專案資訊
project(demo2)
# 查詢當前目錄下的所有原始檔
# 並將名稱儲存到 dir_srcs 變數
aux_source_directory (. dir_srcs)
# 指定生成目標
add_executable (demo $)
./demo3
|+--- main.cc
|+--- math/
|+--- mathfunctions.cc
|+--- mathfunctions.h
根目錄中的cmakelists.txt
# cmake最低版本號要求
cmake_minimum_required (version 2.8)
# 專案資訊
project (demo02)
# 查詢當前目錄下的所有原始檔
# 並將名稱儲存到 dir_srcs 變數
aux_source_directory (. dir_src)
# 新增 math 子目錄
add_subdirectory (math)
# 生成執行檔案
add_executable (demo $)
# 新增鏈結庫
target_link_libraries (demo mathfunctions)
# 查詢當前目錄中的所有原始檔
# 並將名稱儲存到 dir_lib_srcs 變數
aux_source_directory (. dir_lib_srcs)
# 生成鏈結庫
add_library (mathfuntions $)
cmake入門實戰基礎
專案例項目錄結構 主要實現了包含了專案內部生成的庫,同時又依賴了外部三方的庫。bin demo cmake build cmakelists.txt inc mathcommon.h lib libmathcommon.so libmathfunctions.a lib extern build c...
CMake簡易入門
首發於fxm5547的部落格 cmake minimum required version 2.6 project itest c 標準 set cmake cxx standard 11 指定參與編譯的原始檔 add executable itest src main.cpp src cal ca...
cmake 學習入門
1.cmake 的學習入口 cmake 手冊文件一把一把的,就是不帶tutorial,ubuntu16 下的apt檔案就是這樣,無語了 我不需要讀那麼多,我只需要乙個tutorial就可以了,而tutorial只能從網上不能從man手冊或 apt檔案中得到了.不過github上有很多例子,也有tut...