cmake的知识点

CMake是一个跨平台的自动化构建系统,它使用一个名为CMakeLists.txt的文件来描述构建过程,可以生成标准的构建文件,如Unix的Makefile或Windows的工程文件。CMake不直接构建项目,而是生成其他工具的输入,如make、ninja或Visual Studio。下面是一些CMake的关键知识点:

1. 基本概念

  • CMakeLists.txt:项目根目录下的文件,用于定义构建过程。
  • 变量:用于存储路径、文件名等信息。
  • 命令:CMake的指令,如add_executablefind_package等。

2. 常用命令

  • cmake_minimum_required(VERSION x.y):指定项目需要的最低CMake版本。
  • project(ProjectName):定义项目名称和语言。
  • add_executable(target_name file1.cpp file2.cpp ...):创建一个可执行文件目标。
  • add_library(target_name STATIC|SHARED|MODULE source1.cpp source2.cpp ...):创建一个库目标。
  • target_link_libraries(target_name lib1 lib2 ...):链接库到目标。
  • find_package(PackageName):查找并使用外部库。
  • include_directories(dir1 dir2 ...):添加头文件搜索路径。

3. 目标属性

CMake允许为目标设置属性,如包含目录、编译选项等。这些属性可以通过target_include_directoriestarget_compile_options等命令设置。

4. 变量和环境变量

  • 变量:通过set(VAR_NAME "value")设置,通过${VAR_NAME}使用。
  • 环境变量:通过$ENV{VAR_NAME}访问系统环境变量。

5. 控制流

CMake支持条件语句(ifelseifelse)、循环语句(foreachwhile)等控制流语句,允许根据不同条件执行不同的命令。

6. 函数和宏

  • 函数:使用function命令定义,可以有参数和返回值。
  • :使用macro命令定义,类似于函数,但不具有作用域。

7. 导入和导出目标

CMake支持导出和导入构建目标,使得其他项目可以轻松地使用这些目标,而无需重新查找或构建。

8. 生成构建文件

运行cmake命令时,指定源代码目录和要生成构建文件的目录。例如:

cmake -S . -B build

这将在build目录下生成构建系统文件(如Makefile或Visual Studio工程文件)。

9. 构建项目

使用CMake生成的构建系统文件来构建项目。如果是Makefile,可以使用:

cmake --build build

或者直接在build目录下使用make命令。

10. 安装和测试

CMake还支持安装(install命令)和测试(通过CTest,使用enable_testingadd_test命令)。

CMake是一个功能强大的构建系统,支持复杂项目的构建管理。通过学习和使用CMake,可以提高项目的可移植性和构建效率。

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值