ROS之话题创建(三) 编译过程

本文详细介绍如何在ROS环境中使用CMake进行C++源文件的编译配置,包括设置头文件路径、编译代码生成可执行文件、设置链接库及依赖,最后通过catkin_make完成编译并运行。

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

编译配置

创建了两个.cpp文件,需要对这两个源文件进行编译,生成可执行文件,如果是Python写的就可以跳过这一步,本身就是可执行文件

ROS使用的编译器是CMake,所以编译规则在CMakeLists.txt中设置,打开CMakeLists.txt文件,其中很多必要部分都是用注释显示的,在必要的地方打开注释,就可以得到一些必要的配置语句。

cd  ~/my_catkin_ws/src/learning_communication
gedit CMakeLists.txt 

1)设置头文件的相对路径
添加include文件夹,头文件都会放在功能包根目录下的include文件夹下,同时该配置还包含了ROS catkin编译器默认包含的其他文件夹,ROS默认安装路径、Linux系统路径等。
include_directories(include ${catkin_INCLUDE_DIRS})
2) 编译代码和生成可执行文件
add_executable(asker src/asker.cpp) //可执行文件的名字可以随便去,源文件是指定的
3) 设置链接库
这里因为没有使用到其他库文件,添加默认链接库即可
target_link_libraries(asker ${catkin_LIBRARIES})
4) 设置依赖
在很多应用中,我们需要定义与语言无关的消息类型,消息在编译时会生成对应语言的代码,如果编译的可执行文件依赖这些动态生成的代码,则在编译的时候需要添加依赖,
add_dependencies(asker ${PROJECT_NAME}_generate_messages_cpp)

对于本工程需要添加的代码

include_directories(include  ${catkin_INCLUDE_DIRS})

add_executable(asker  src/asker.cpp) 
target_link_libraries(asker  ${catkin_LIBRARIES})
add_dependencies(asker  ${PROJECT_NAME}_generate_messages_cpp)

add_executable(listener  src/listener.cpp) 
target_link_libraries(listener  ${catkin_LIBRARIES})
add_dependencies(listener  ${PROJECT_NAME}_generate_messages_cpp)

编译过程

1)返回工作空间目录
2)catkin_make编译

cd  ~/my_catkin_ws
catkin_make

运行

roscore 
rosrun learning_communication asker
rosrun learning_communication listener
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值