CMake--使用教程基礎篇

簡介

  Cmake很是好的一個工具,可跨平臺使用,是進行項目構建的一把好手,對於一個工具而言,仍是要以使用目的爲導向的,掌握最實用,應用範圍最廣的功能便可。git

安裝

  做爲跨平臺應用,談到安裝的話,就須要考慮Linuxwindows了,對於Linux而言,這已經不是什麼問題了,如今不少開發版本都是自帶CMake了,但可能版本不是最新的,只須要根據你的要求選擇下是否須要進行升級便可。
  不少庫在windows的安裝與配置環節是至關困難的,可是Cmake仍是比較人性化的,可能前期已經考慮到這個問題了,所在,你只須要在github找到它,下載Release下對應的版本便可,安裝即用,沒有配置煩惱。github

目標功能

  本人學習Cmake主要實現的目標爲:windows

  • 可以編譯一個獨立的*.cpp;
  • 可以實現不一樣路徑下的*cpp編譯在一塊兒;
  • 能調用本身生成的*.so與*.h
目標1

  編譯某一個*.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})
目標2

  編譯多個*.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})
目標3

  調用*.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

  執行完上述幾條代碼,就會生成可執行文件了。

相關文章
相關標籤/搜索