Cmake入门学习-基础与资源

CMake是一个跨平台的开源构建工具,用于生成Makefile。常用命令包括cmake、make、makeinstall等。关键变量有CMAKE_SOURCE_DIR、CMAKE_BINARY_DIR等。常用函数有include_directories、add_executable等。文章提供了CMake的教程资源链接,包括官方文档和中文教程,帮助初学者学习和掌握CMake。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CMake是一个跨平台的开源构建工具,可自动生成与平台相关的Makefile或其他构建文件,从而使您可以使用相同的CMakeList.txt文件在不同的操作系统和编译器上构建您的项目。以下是一些常用的CMake命令和教程资源,可以帮助初学者掌握和使用Cmake工具。

在教程资源中,包含了中文教程,对看英文头疼的人比较友好

常用命令:

1. cmake . # 在当前目录下生成Makefile
2. cmake -G “Generator” . # 指定生成器,如Ninja、Visual Studio等
3. make # 构建项目
4. make install # 安装项目
5. cmake --build . --target xxxx # 构建指定目标
6. cmake --list-commands # 列出所有可用的CMake命令
7. cmake --help-command=xxxx # 查看特定命令的详细帮助文档

常用变量:

  1. CMAKE_SOURCE_DIR:项目根目录的绝对路径。该变量指向 CMakeLists.txt 文件所在的目录,即项目根目录,可以在 CMakeLists.txt 中使用。
  2. CMAKE_BINARY_DIR:构建目录的绝对路径。该变量指向在构建项目时所使用的编译器所在目录,可以在 CMakeLists.txt 中使用。
  3. PROJECT_NAME:项目名称,由 CMakeLists.txt 文件中的 project 命令指定。您可以使用该变量在代码中引用项目名称,如取代硬编码的名称。
  4. CMAKE_BUILD_TYPE:当前构建类型,如 Debug 或 Release。该变量指定了当前编译器所使用的编译选项,如优化等级、调试符号等。可以在命令行中设置该变量的值。
  5. CMAKE_INSTALL_PREFIX:安装目录,由 install 命令指定,默认为 /usr/local。该变量指定了 make install 命令将项目安装到的目录,可以在 CMakeLists.txt 中显示地设置。
  6. CMAKE_C_COMPILER:C 编译器的可执行文件路径。该变量指向当前项目所使用的 C 编译器的可执行文件路径。
  7. CMAKE_CXX_COMPILER:C++ 编译器的可执行文件路径。该变量指向当前项目所使用的 C++ 编译器的可执行文件路径。
  8. CMAKE_SYSTEM_NAME:当前系统名称,如 Linux、Windows 等。该变量指定了当前系统的名称,并且会根据不同的系统设置不同的编译器和选项。
  9. CMAKE_MODULE_PATH:CMake 模块路径列表。该变量指向可以在 CMakeLists.txt 文件中调用的 “.cmake” 模块文件的目录列表。

常用函数:

  1. include_directories(dir1 [dir2 …]):添加头文件搜索路径。该函数用于添加头文件的搜索路径,一般情况下会加在 add_library 或 add_executable 命令之前,在 target_include_directories 命令之后。
  2. add_subdirectory(path):添加子目录并处理子目录的 CMakeLists.txt 文件。这个函数用于添加子目录并执行该子目录下的 CMakeLists.txt 文件。
  3. add_executable(name [src1] [src2] …):创建可执行文件。该函数用于生成可执行文件,它接受一个目标名称和源文件列表,生成一个可执行文件。
  4. add_library(name [STATIC | SHARED | MODULE] [src1] [src2] …):创建库文件,静态库、动态库和插件。该函数用于生成库文件,它接受一个目标名称、库类型和源文件列表,生成一个库文件。
  5. target_link_libraries(target lib1 [lib2 …]):链接库文件。该函数用于将库文件链接到指定的目标文件。
  6. file(GLOB SRCS “*.cpp”):找到指定目录下的所有符合条件的文件。该函数用于返回指定目录下的所有符合条件的文件列表。在上面的示例中,该函数将 *.cpp 全部替换为当前目录下的所有 “.cpp” 文件的名称和路径。
  7. file(MAKE_DIRECTORY dir):创建指定目录。该函数用于在目标目录或配置文件目录中创建指定的目录。
  8. find_package(PackageName [version] [EXACT] [QUIET] [REQUIRED]):查找第三方库包。该函数用于在当前平台上查找所需的库,如 OpenSSL、Boost、Qt 等。
  9. add_definitions(-DDEFINITION):定义预处理器宏。该函数用于添加含有系统特定功能声明的库,对于允许预处理器的编译器非常有用。
  10. target_sources(target_name PRIVATE srcs…):为目标添加源文件。该函数可以向当前目标(可执行文件或库)添加源文件,PRIVATE 表示这些源文件只对当前目标可见。

此外,CMake 还提供了许多其他的变量和函数,可以根据项目的实际需求灵活使用。可以在 CMake 官方文档中查看更多的变量和函数:https://cmake.org/documentation/manual/latest/variables/index.html 和 https://cmake.org/documentation/manual/latest/command/

教程资源:

  1. CMake官方文档:https://cmake.org/documentation/
  2. CMake教程:https://cmake.org/cmake-tutorial/
  3. CMake入门指南:https://cliutils.gitlab.io/modern-cmake/
  4. Modern Cmake中文版(推荐):https://www.bookstack.cn/read/Modern-CMake-CN-Modern-CMake-zh_CN/08ad6f6237beace2.md
  5. CMake 的使用实例,可以加深理解:全网最细的CMake教程!(强烈建议收藏) - 知乎 (zhihu.com)
  6. CMake cookbook:https://www.brianlheim.com/2018/04/09/cmake-cookbook.html
  7. CMake cookbook中文版Introduction - 《CMake菜谱(CMake Cookbook中文版)》 - 书栈网 · BookStack

建议看看两个中文版的教程**(4、8),结合5**加深理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值