美文网首页
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