您当前的位置: 首页 > 

鱼香ROS

暂无认证

  • 0浏览

    0关注

    498博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

ROS2前置基础教程 | 使用CMakeLists.txt编译ROS2节点

鱼香ROS 发布时间:2022-06-17 18:23:56 ,浏览量:0

写在前面
  1. 当前平台文章汇总地址:ROS2机器人从入门到实战
  2. 获取完整教程及配套资料代码,请关注公众号获取
  3. 教程配套机器人开发平台:两驱版| 四驱版
  4. 为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn
虽然通过make调用Makefile编译代码非常的方便,但是还是需要我们手写gcc指令来编译,那有没有什么办法可以自动生成Makefile呢?

答案是有的,那就是cmake工具。

cmake通过调用CMakeLists.txt直接生成Makefile。

1.安装Cmake
sudo apt install cmake
2.新建CMakeLists.txt

d2lros2/d2lros2/chapt2/basic新建CMakeLists.txt,输入下面内容。

cmake_minimum_required(VERSION 3.22)

project(first_node)

#include_directories 添加特定的头文件搜索路径 ,相当于指定g++编译器的-I参数
include_directories(/opt/ros/humble/include/rclcpp/)
include_directories(/opt/ros/humble/include/rcl/)
include_directories(/opt/ros/humble/include/rcutils/)
include_directories(/opt/ros/humble/include/rcl_yaml_param_parser/)
include_directories(/opt/ros/humble/include/rosidl_runtime_c/)
include_directories(/opt/ros/humble/include/rosidl_typesupport_interface/)
include_directories(/opt/ros/humble/include/rcpputils/)
include_directories(/opt/ros/humble/include/builtin_interfaces/)
include_directories(/opt/ros/humble/include/rmw/)
include_directories(/opt/ros/humble/include/rosidl_runtime_cpp/)
include_directories(/opt/ros/humble/include/tracetools/)
include_directories(/opt/ros/humble/include/rcl_interfaces/)
include_directories(/opt/ros/humble/include/libstatistics_collector/)
include_directories(/opt/ros/humble/include/statistics_msgs/)

# link_directories - 向工程添加多个特定的库文件搜索路径,相当于指定g++编译器的-L参数
link_directories(/opt/ros/humble/lib/)

# add_executable - 生成first_node可执行文件
add_executable(first_node first_ros2_node.cpp)

# target_link_libraries - 为first_node(目标) 添加需要动态链接库,相同于指定g++编译器-l参数
# 下面的语句代替 -lrclcpp -lrcutils
target_link_libraries(first_node rclcpp rcutils)
3.编译代码

我们一般会创建一个新的目录,运行cmake并进行编译,这样的好处是不会显得那么乱。

mkdir buildcd build

创建好文件夹,接着运行cmake指令,..代表到上级目录找CMakeLists.txt

cmake ..

运行完cmake你应该可以在build目录下看到cmake自动生成的Makefile了,接着就可以运行make指令进行编译

make

运行完上面的指令,就可以在build目录下发现first_node节点了。

图片

ROS2前置教程汇总:

我因我们而存在,Ubuntu也有哲学意义

ROS2前置教程|在虚拟机中安装Ubuntu

ROS2前置教程 | 玩转Ubuntu之常用指令

ROS2前置教程|玩转Ubuntu之编程工具

ROS2前置教程 | 玩转Ubuntu之常用软件

ROS2前置基础教程 | 小鱼教你用g++编译ROS2节点

ROS2前置基础教程 | 小鱼教你用make编译ROS2节点

ROS2进阶教程汇总:

ROS2进阶教程| ROS2系统架构之操作系统打假

关注
打赏
1666092100
查看更多评论
立即登录/注册

微信扫码登录

0.0353s