ros2怎么编写cmakelists.txt
时间: 2023-10-20 21:05:55 浏览: 107
在ROS2中,使用CMake来构建工程,需要在每个包的根目录下创建一个 `CMakeLists.txt` 文件。以下是一个简单的 `CMakeLists.txt` 文件示例:
```cmake
cmake_minimum_required(VERSION 3.5)
project(my_package)
# 设置C++标准
set(CMAKE_CXX_STANDARD 14)
# 添加依赖
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
# 添加可执行文件
add_executable(my_node src/my_node.cpp)
target_link_libraries(my_node ${rclcpp_LIBRARIES})
# 安装可执行文件
install(TARGETS
my_node
DESTINATION lib/${PROJECT_NAME})
# 安装启动文件
install(PROGRAMS
scripts/my_script
DESTINATION lib/${PROJECT_NAME})
# 安装launch文件
install(DIRECTORY
launch
DESTINATION share/${PROJECT_NAME})
# ROS2依赖
ament_package()
```
在这个示例中,首先设置了C++标准为C++14。然后使用 `find_package()` 函数添加了依赖项,这里依赖于ROS2的 `ament_cmake` 和 `rclcpp` 库。接下来,使用 `add_executable()` 函数添加了一个名为 `my_node` 的可执行文件,并使用 `target_link_libraries()` 函数将 `rclcpp` 库链接到可执行文件上。然后使用 `install()` 函数将可执行文件、启动文件和launch文件安装到指定的目录中。最后调用 `ament_package()` 函数来声明这个包作为一个ROS2包。
这只是一个简单的示例,如果您的工程有其他依赖、需要编译多个可执行文件或库等,您需要根据自己的需求修改 `CMakeLists.txt` 文件。
阅读全文