Cmake
很是好的一個工具,可跨平臺使用,是進行項目構建的一把好手,對於一個工具而言,仍是要以使用目的爲導向的,掌握最實用,應用範圍最廣的功能便可。git
做爲跨平臺應用,談到安裝的話,就須要考慮Linux
與windows
了,對於Linux
而言,這已經不是什麼問題了,如今不少開發版本都是自帶CMake
了,但可能版本不是最新的,只須要根據你的要求選擇下是否須要進行升級便可。
不少庫在windows
的安裝與配置環節是至關困難的,可是Cmake
仍是比較人性化的,可能前期已經考慮到這個問題了,所在,你只須要在github
找到它,下載Release
下對應的版本便可,安裝即用,沒有配置煩惱。github
本人學習Cmake主要實現的目標爲:windows
編譯某一個*.cpp
, 文件結構以下:工具
T1/ | -- CMakeLists.txt | -- build / | -- main.cpp
CMakeLists.txt的文件爲:學習
PROJECT (TEST) cmake_minimum_required(VERSION 3.12) #camke版本號 AUX_SOURCE_DIRECTORY(. SRC_LIST) #將./下的全部*.cpp加入到SRC_LIST中 ADD_EXECUTABLE(hello ${SRC_LIST})
編譯多個*.cpp
,文件結構以下:ui
T2 | -- CMakeList.txt | -- main.cpp | -- build | -- src -- CMakeList.txt -- test.h -- test.cpp
CMakeLists.txt文件爲:code
PROJECT(main) CMAKE_MINIMUM_REQUIRED(VERSION 3.12) ADD_SUBDIRECTORY(src) AUX_SOURCE_DIRECTORY(. DIR_SRCS) ADD_EXECUTABLE(main ${DIR_SRCS}) TARGET_LINK_LIBRARIES(main TEST)
第二個CMakeLists.txt文件爲:開發
AUX_SOURCE_DIRECTORY(. DIR_TEST_SRC) #generate *.so ADD_LIBRARY(TEST SHARED ${DIR_TEST_SRC})
調用*.so
, *.h
,文件結構:it
T3 | -- include -- test.h | -- libs -- libTEST.so | -- CMakeLists.txt | -- main.cpp
CMakeLists.txt的文件爲:編譯
PROJECT(main) CMAKE_MINIMUM_REQUIRED(VERSION 3.12) INCLUDE_DIRECTORIES(./include) AUX_SOURCE_DIRECTORY(. DIR_SRCS) ADD_EXECUTABLE(main ${DIR_SRCS}) #絕對路徑添加 *.so TARGET_LINK_LIBRARIES(main /home/utech/myso/t3/libs/libTEST.so)
上述代碼都是最簡單最基本的語句,若是想要執行某些文件的輸出位置等操做,還須要繼續深刻學習下。
由於windows
下是有gui
的,能夠經過界面操做,相對來講比較簡答,因此在這裏介紹下Linux
下的使用:
首先,在根目錄下創建並進入build
的文件夾:
mkdir build cd build
而後執行Cmake
命令,記得後面要加路徑,即CMakeLists.txt
所在的地方,例如 ../
就說明是在上層目錄中:
cmake ../
最後在根目錄下執行make
命令便可:
make -j8
執行完上述幾條代碼,就會生成可執行文件了。