美文网首页
CMakeLists.txt 范例

CMakeLists.txt 范例

作者: rickif | 来源:发表于2017-11-16 12:06 被阅读0次

前言

这是我的第一篇简书,以后要养成记笔记的习惯!

正文

CMake 是一个开源的跨平台的构建测试和打包工具,可以方便地用在自己的项目管理中.在 Windows 平台下,
visual studio 可以帮我们完成一切编译链接的工作.在 Linux 环境下需要我们自己完成编译链接的过程,通过编写 makefile 指明编译过程和链接关系.而 CMake 就是这样的一种工具,通过编写 CMakeLists.txt,相当于编写 makefile 的 makefile,抽象和简化我们编写 makefile 的过程.下面给出我在实际项目中用到的一个 CMakeLists.txt 范例.


目录树

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

inc文件夹存放头文件,lib文件夹存放需要链接的第三方静态库文件,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}) #链接静态库目录

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

ADD_EXECUTABLE(${PROJECT_NAME} ${SRC_DIR})

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

后记

作为一名不太会书写和表达的工科生,希望看到的朋友们多多指正!共勉!

相关文章

网友评论

      本文标题:CMakeLists.txt 范例

      本文链接:https://www.haomeiwen.com/subject/kyhlvxtx.html