版权申明:
本文原创首发于以下网站,您可以自由转载,但必须加入完整的版权声明
博客园:https://www.cnblogs.com/Mogoo…
csdn 博客:https://blog.csdn.net/nmjkl001/
知乎:https://www.zhihu.com/people/…
简书:https://www.jianshu.com/u/954…
segmentfault:https://segmentfault.com/u/mo…
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