Fork me on github

CMake指南

版权申明:

本文原创首发于以下网站,您可以自由转载,但必须加入完整的版权声明

博客园:https://www.cnblogs.com/MogooStudio/
csdn博客:https://blog.csdn.net/nmjkl001/
知乎:https://www.zhihu.com/people/MogooStudio/
简书:https://www.jianshu.com/u/9547c81ca54e
segmentfault:https://segmentfault.com/u/mogoostudio

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.txt
     project(hello)
     add_executable(hello main.cpp)
    
  5. 通过cmake命令构建项目:终端内执行命令:cmake PATH,这里执行
     cd build
     cmake ..
    
  6. 通过cmake的gui构建项目
    
    打开cmake gui设置source和build
    点击Configure设置platform,再点击Configure
    点击Genrate
    点击OpenProject
    

构建可执行程序(待完善)

构建库程序(待完善)

我的联系方式:

QQ:2161044579
邮箱:mogoostudio@outlook.com
Github:https://github.com/MogooStudio

posted @ 2019-09-27 15:58  MogooStudio  阅读(...)  评论(...编辑  收藏