CMake指南

版權申明:

本文原創首發於如下網站,您能夠自由轉載,但必須加入完整的版權聲明

博客園: https://www.cnblogs.com/Mogoo...
csdn博客: https://blog.csdn.net/nmjkl001/
知乎: https://www.zhihu.com/people/...
簡書: https://www.jianshu.com/u/954...
segmentfault: https://segmentfault.com/u/mo...

CMakeLists.txt 文件解析

  • cmake verson,指定cmake版本
cmake_minimum_required(VERSION 3.2)
  • project name,指定項目的名稱,通常和項目的文件夾名稱對應
PROJECT(test_sqrt)
  • head file path,頭文件目錄
INCLUDE_DIRECTORIES(
    include
    )
  • source directory,源文件目錄
AUX_SOURCE_DIRECTORY(src DIR_SRCS)
  • set environment variable,設置環境變量,編譯用到的源文件所有都要放到這裏,不然編譯可以經過,可是執行的時候會出現各類問題,好比"symbol lookup error xxxxx , undefined symbol"
SET(TEST_MATH
    ${DIR_SRCS}
    )
  • add executable file,添加要編譯的可執行文件
ADD_EXECUTABLE(${PROJECT_NAME} ${TEST_MATH})
  • add link library,添加可執行文件所須要的庫,好比咱們用到了libm.so(命名規則:lib+name+.so),就添加該庫的名稱
TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)

編譯階段

  • make 命令默認執行的是 make all,make all 有四個階段: prepare test compile package
make prepare : 只會執行prepare階段,這個階段主要是下載編譯依賴
    make test : 只會執行test階段,這個階段主要是作單元測試
    make compile : 只會執行compile階段,這個階段主要是進行編譯
    make package : 只會執行packege階段,這個階段會把編譯產出都copy到output目錄中
    make install : 只會執行install階段,這個階段是把編譯產出放到$GOPATH/bin目錄下,這個不是必須的
    make clean : 只會執行clean階段,這個階段把編譯輸出的一些文件刪除,恢復到編譯以前的狀態

基本實踐

  1. 建立項目文件夾hello
  2. 文件夾hello內,建立構建目錄build
  3. 文件夾hello內,建立源代碼(main.cpp)
  4. 文件夾hello內,建立CMakeLists.txtgit

    project(hello)
     add_executable(hello main.cpp)
  5. 經過cmake命令構建項目:終端內執行命令:cmake PATH,這裏執行github

    cd build
     cmake ..
  6. 經過cmake的gui構建項目segmentfault

    打開cmake gui設置source和build
    點擊Configure設置platform,再點擊Configure
    點擊Genrate
    點擊OpenProject

構建可執行程序(待完善)

構建庫程序(待完善)

個人聯繫方式:

QQ:2161044579
郵箱:mogoostudio@outlook.com
Github: https://github.com/MogooStudio
相關文章
相關標籤/搜索