• 忘掉天地
  • 仿佛也想不起自己
bingliaolongBingliaolong  2022-06-20 14:08 Aet 隐藏边栏 |   抢沙发  3 
文章评分 1 次,平均分 5.0

Base

tutorial.cpp

CMakeLists.txt

注释

  1. cmake_minimum_required
    1. 指定使用 CMake 的最低版本号
  2. project
    1. 指定项目名称
    2. 指定后可以使用变量${PROJECT_NAME}
  3. add_executable
    1. 来生成可执行文件,需要指定生成可执行文件的名称和相关源文件

构建编译

构建

  1. 在build文件夹构建系统。

编译

  1. 在build目录下生成Makefile文件
  2. 然后调用编译器来实际编译和链接项目

外部构建

  1. 像上面创建build文件夹将构建和代码隔离开来,是外部构建

内部构建

  1. 直接在代码同级目录下进行构建

注释

  1. ..表示指定cmake需要的CMakeLists.txt在build文件夹的上一层的位置。

优化

添加版本号

配置头文件将版本号传递给源代码

TutorialConfig.h 文件会被自动写入 build 目录,因此必须将该目录添加到搜索头文件的路径列表中

创建 TutorialConfig.h.in文件,内容如下:

当使用 CMake 构建项目后,会在 build 中生成一个 TutorialConfig.h 文件,内容如下:

在 tutorial.cpp 包含头文件 TutorialConfig.h

注释

  1. set创建了一个变量
  2. ${PROJECT_BINARY_DIR}表示当前工程的二进制路径,即编译产物会存放到该路径
    此时我们采用了外部构建,二进制会生成在build目录下,所以PROJECT_BINARY_DIR 就是 build 所在路径

指定C++标准

注释

  1. CMAKE_CXX_STANDARD指定C++标准版本

添加库

设置库为可选项

宏开关

注释

  1. EXTRA_LIBS用来保存需要链接到可执行程序的可选库
  2. EXTRA_INCLUDES用来保存可选的头文件搜索路径
  3. APPEND表示将元素MathFunctions追加到列表EXTRA_LIBS

添加库的使用

MathFunctions/CMakeLists.txt

顶层CMakeLists.txt

注释

  1. INTERFACE是指消费者需要、但生产者不需要的那些东西
  2. CMAKE_CURRENT_SOURCE_DIR表示 MathFunctions 库所在目录

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

bingliaolong
Bingliaolong 关注:0    粉丝:0 最后编辑于:2022-07-07
Everything will be better.

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享