网站常用模块,小广告图片素材,免费奖励的网站有哪些,收费小说网站怎么做很多小白宝宝不懂CMakeLists.txt 究竟是干什么的#xff0c;本文对CMakeLists.txt 文件进行详解 CMakeLists.txt 是 CMake 的核心文件#xff0c;用户通过这个文件告诉 CMake 如何构建项目。这个文件通常包括设置项目名称、版本号、语言标准、编译器选项、查找依赖包、添加可…很多小白宝宝不懂CMakeLists.txt 究竟是干什么的本文对CMakeLists.txt 文件进行详解 CMakeLists.txt 是 CMake 的核心文件用户通过这个文件告诉 CMake 如何构建项目。这个文件通常包括设置项目名称、版本号、语言标准、编译器选项、查找依赖包、添加可执行文件或库、链接依赖库、安装路径等。 每一行代码的解释如下 版本要求
cmake_minimum_required(VERSION 3.5)
这行代码设置了 CMake 的最低版本要求。CMake 是一个跨平台的构建工具不同的版本可能有不同的功能。这行代码确保用户使用的 CMake 版本不低于 3.5以保证项目能够正确构建。 项目名称
project(demo_cpp_pkg)
这行代码定义了项目的名称。项目的名称在构建过程中会用到例如生成的库或可执行文件的名称通常会包含项目名称。 指定标准
if(NOT CMAKE_C_STANDARD)set(CMAKE_C_STANDARD 99)
endif()if(NOT CMAKE_CXX_STANDARD)set(CMAKE_CXX_STANDARD 14)
endif()
这行代码设置了默认的 C 和 C 标准。如果没有明确指定标准CMake 会使用 C99 作为默认的 C 标准C14 作为默认的 C 标准。 编译选项
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES Clang)add_compile_options(-Wall -Wextra -Wpedantic)
endif()
这行代码为特定的编译器如 GNU C 和 Clang添加编译选项。-Wall 和 -Wextra 会启用更多的编译警告-Wpedantic 会启用严格的 ISO C 标准检查。 查找依赖包
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
这行代码查找项目所需的依赖包。find_package 是 CMake 的一个命令用于查找和加载外部库或包。REQUIRED 表示如果没有找到这些包CMake 将报错。 添加可执行文件
add_executable(talker src/talker.cpp) 这行代码添加一个可执行文件talker 是可执行文件的名称src/talker.cpp 是源文件的路径。 添加依赖
ament_target_dependencies(talker rclcpp std_msgs)
这行代码将可执行文件 talker 链接到依赖库 rclcpp 和 std_msgs。 下载位置
install(TARGETStalkerDESTINATION lib/${PROJECT_NAME}
)
这行代码指定了可执行文件的安装路径。lib/${PROJECT_NAME} 是典型的 ROS 2 安装路径。