版权申明:
本文原创首发于以下网站,您可以自由转载,但必须加入完整的版权声明
博客园: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阶段,这个阶段把编译输出的一些文件删除,恢复到编译之前的状态
基本实践
- 创建项目文件夹hello
- 文件夹hello内,创建构建目录build
- 文件夹hello内,创建源代码(main.cpp)
- 文件夹hello内,创建CMakeLists.txt
project(hello) add_executable(hello main.cpp)
- 通过cmake命令构建项目:终端内执行命令:cmake PATH,这里执行
cd build cmake ..
- 通过cmake的gui构建项目
打开cmake gui设置source和build 点击Configure设置platform,再点击Configure 点击Genrate 点击OpenProject
构建可执行程序(待完善)
构建库程序(待完善)
我的联系方式:
QQ:2161044579
邮箱:mogoostudio@outlook.com
Github:https://github.com/MogooStudio