CMakeLists.txt 范例

前言

這是我的第一篇簡(jiǎn)書,以后要養(yǎng)成記筆記的習(xí)慣!

正文

CMake 是一個(gè)開源的跨平臺(tái)的構(gòu)建測(cè)試和打包工具,可以方便地用在自己的項(xiàng)目管理中.在 Windows 平臺(tái)下,
visual studio 可以幫我們完成一切編譯鏈接的工作.在 Linux 環(huán)境下需要我們自己完成編譯鏈接的過(guò)程,通過(guò)編寫 makefile 指明編譯過(guò)程和鏈接關(guān)系.而 CMake 就是這樣的一種工具,通過(guò)編寫 CMakeLists.txt,相當(dāng)于編寫 makefile 的 makefile,抽象和簡(jiǎn)化我們編寫 makefile 的過(guò)程.下面給出我在實(shí)際項(xiàng)目中用到的一個(gè) CMakeLists.txt 范例.


目錄樹

├─ inc
│ ├── a.h
│ ├── b.h
│ └── c.h
├─ lib
│ ├── liba.a
│ └── libb.a
├─ src
│ ├── c.cpp
│ └── main.cpp
└─ CMakeLists.txt

inc文件夾存放頭文件,lib文件夾存放需要鏈接的第三方靜態(tài)庫(kù)文件,src文件夾存放源文件,CMakeLists.txt 放在根目錄.


CMakeLists.txt

#cmake version
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)

#define project name
PROJECT(aaa)

SET(CMAKE_CXX_FLAGS "-std=c++11")

SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g2 -ggdb")  
SET(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall")  

SET(INC_DIR ./inc)
SET(LINK_DIR ./lib)

INCLUDE_DIRECTORIES(${INC_DIR})  #包含的頭文件目錄
LINK_DIRECTORIES(${LINK_DIR}) #鏈接靜態(tài)庫(kù)目錄

AUX_SOURCE_DIRECTORY(./src SRC_DIR) #源文件目錄

ADD_EXECUTABLE(${PROJECT_NAME} ${SRC_DIR})

TARGET_LINK_LIBRARIES(${PROJECT_NAME} a)
TARGET_LINK_LIBRARIES(${PROJECT_NAME} b)

后記

作為一名不太會(huì)書寫和表達(dá)的工科生,希望看到的朋友們多多指正!共勉!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容