ROS的CMakeLists.txt教程
时间: 2023-10-29 18:59:21 浏览: 98
CMakeLists.txt是ROS中用于构建和编译软件包的文件。下面是一个简单的CMakeLists.txt示例,它包含了一些常用的指令和变量:
```
cmake_minimum_required(VERSION 2.8.3)
project(my_package)
find_package(catkin REQUIRED COMPONENTS
roscpp
std_msgs
)
catkin_package(
INCLUDE_DIRS include
LIBRARIES my_package
CATKIN_DEPENDS roscpp std_msgs
)
include_directories(
include
${catkin_INCLUDE_DIRS}
)
add_library(my_library src/my_library.cpp)
target_link_libraries(my_library ${catkin_LIBRARIES})
add_executable(my_node src/my_node.cpp)
target_link_libraries(my_node my_library ${catkin_LIBRARIES})
```
其中,指令和变量的含义如下:
- `cmake_minimum_required(VERSION 2.8.3)`:指定CMake的最低版本要求。
- `project(my_package)`:指定工程名称。
- `find_package(catkin REQUIRED COMPONENTS roscpp std_msgs)`:查找必要的ROS组件。
- `catkin_package()`:声明catkin软件包,以便其他软件包可以查找到。
- `include_directories(include ${catkin_INCLUDE_DIRS})`:指定包含文件的目录。
- `add_library(my_library src/my_library.cpp)`:将my_library.cpp编译成库。
- `target_link_libraries(my_library ${catkin_LIBRARIES})`:链接库到ROS依赖库。
- `add_executable(my_node src/my_node.cpp)`:将my_node.cpp编译成可执行文件。
- `target_link_libraries(my_node my_library ${catkin_LIBRARIES})`:链接可执行文件到库和ROS依赖库。
以上是一个最基本的CMakeLists.txt示例,你可以根据你的需要修改它。更多关于CMakeLists.txt的信息,请查看ROS官方文档。
阅读全文