CMakeLists文件常用命令

 查看当前 CMake 项目的 include_directories 设置

get_target_property(INCLUDE_DIRS ${PROJECT_NAME} INTERFACE_INCLUDE_DIRECTORIES)
message(STATUS "Target ${PROJECT_NAME} include directories: ${INCLUDE_DIRS}")

指定目录查找库(拿PCL为例,其中PATH_TO_YOUR_PCL_LIBRARY是PCLConfig.cmake所在路径)

set(PCL_DIR "PATH_TO_YOUR_PCL_LIBRARY")
find_package(PCL REQUIRED COMPONENTS)

### CMakeLists.txt 文件的编写方法 CMake 是一个跨平台的开源构建系统,它通过读取 `CMakeLists.txt` 文件中的指令来生成标准的构建文件(如 Unix 的 Makefile 或 Windows 的 Visual Studio 项目文件)。该文件是 CMake 构建系统的核心配置文件,采用命令式语法组织项目结构和编译流程,主要用于定义项目的构建规则、依赖关系、编译选项等。每个 CMake 项目通常都有一个或多个 `CMakeLists.txt` 文件[^1]。 #### 基本结构与语法 一个简单的 `CMakeLists.txt` 文件包含以下几个核心部分: - **指定最低版本要求**:使用 `cmake_minimum_required` 命令声明项目所需的最低 CMake 版本。 - **定义项目信息**:使用 `project()` 函数设置项目名称及语言。 - **设置编译参数**:可以使用 `set()` 函数定义变量,例如指定 C++ 标准。 - **查找源文件**:使用 `aux_source_directory()` 或显式列出源文件。 - **添加可执行文件目标**:使用 `add_executable()` 指定输出的可执行文件及其源文件列表。 - **头文件路径**:使用 `include_directories()` 添加头文件搜索路径。 以下是一个最基础的 `CMakeLists.txt` 示例: ```cmake cmake_minimum_required(VERSION 3.16) project(test_calculate) set(CMAKE_CXX_STANDARD 11) aux_source_directory(${PROJECT_SOURCE_DIR} SRC) include_directories(${PROJECT_SOURCE_DIR}) add_executable(test_cacl ${SRC}) ``` 该示例中指定了 CMake 最低版本为 3.16,项目名为 `test_calculate`,并使用 C++11 标准进行编译。它会自动将当前目录下的所有源文件收集到变量 `SRC` 中,并将其用于生成名为 `test_cacl` 的可执行文件[^5]。 #### 构建项目流程 在完成 `CMakeLists.txt` 配置后,可以通过以下方式构建项目: 1. 在项目根目录下创建一个名为 `build` 的子目录,并进入该目录。 2. 执行 `cmake <path_to_CMakeLists.txt>` 命令以生成构建文件。 3. 执行 `make` 命令进行编译。 4. 编译完成后,在生成的可执行文件所在目录找到输出文件并运行[^2]。 #### 更高级的配置 对于更复杂的项目,可能需要支持多平台构建或工具链分离。在这种情况下,可以将与平台相关的工具链配置信息单独放在一个文件中,然后在执行 `cmake` 命令时临时指定该文件,从而提升工作效率。这种做法特别适用于需要在不同平台上部署的项目,确保每个平台的配置独立且可维护[^4]。 此外,CMake 支持模块化设计,允许将常用配置或函数封装成模块,通过 `include()` 命令引入。这种方式有助于管理大型项目中的重复逻辑,提高代码复用率和可维护性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值