ROS2 + Qt5 cmake的CMakeLists.txt文件配置

2023-05-16

ROS2 QT实现学习笔记-1.1 功能包的创建和编译

ROS2 Foxy + Qt5 on Linux Platform

按上面两个文章配置后的目录结构

├── build
├── CMakeLists.txt
├── include
│   ├── mainwindow.h
│   └── rclcomm.h
├── package.xml
├── resource
├── src
│   ├── main.cpp
│   ├── mainwindow.cpp
│   └── rclcomm.cpp
└── ui
    └── mainwindow.ui

rclcomm.cpp和rclcomm.h是我的测试文件

 CMakeLists.txt

cmake_minimum_required(VERSION 3.8)
project(ros2_qt_demo LANGUAGES CXX)

set(CMAKE_INCLUDE_CURRENT_DIR ON)

# !!! 第一个要注释掉
# set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
  add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# find dependencies
# ROS
# !!!ros需要的功能在这里导入
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
# QT
find_package(Qt5 COMPONENTS Widgets REQUIRED)
# find_package(<dependency> REQUIRED)

# 项目目录下的目标配置文件
file(GLOB PRO_SOURCE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS src/*.cpp)
file(GLOB PRO_UI_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS ui/*.ui)
file(GLOB PRO_INCLUDE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS include/*.h *.hpp)
file(GLOB PRO_RESOURCE_DIR RELATIVE ${CMAKE_SOURCE_DIR} FOLLOW_SYMLINKS resource/*.qrc)
# include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include)
#搜索头文件的位置
include_directories(
       include
       ${rclcpp_INCLUDE_DIRS}# !!! 编译找不到rclcpp.hpp,要加上这个
       ${CMAKE_CURRENT_BINARY_DIR}
       ${CMAKE_CURRENT_SOURCE_DIR}
)
# include_directories(${rclcpp_INCLUDE_DIRS})
# (输出, 输入)
qt5_wrap_ui(QT_UI_HPP ${PRO_UI_DIR})
qt5_wrap_cpp(QT_MOC_HPP ${PRO_INCLUDE_DIR})
qt5_add_resources(QT_RESOUCE_HPP ${PRO_RESOURCE_DIR})

# 导入可执行的目标文件
add_executable(${PROJECT_NAME}
    ${PRO_SOURCE_DIR}
    ${PRO_INCLUDE_DIR}
    ${PRO_UI_DIR}
    ${PRO_RESOURCE_DIR}
    ${QT_UI_HPP} # UI的文件应该不需要添加在这里
    ${QT_MOC_HPP}
    ${QT_RESOUCE_HPP}
)
# !!! 编译找不到rclcpp.hpp,这里要加上${rclcpp_LIBRARIES}
target_link_libraries(${PROJECT_NAME} PRIVATE Qt5::Widgets ${rclcpp_LIBRARIES})

if(BUILD_TESTING)
  find_package(ament_lint_auto REQUIRED)
  # the following line skips the linter which checks for copyrights
  # comment the line when a copyright and license is added to all source files
  set(ament_cmake_copyright_FOUND TRUE)
  # the following line skips cpplint (only works in a git repo)
  # comment the line when this package is in a git repo and when
  # a copyright and license is added to all source files
  set(ament_cmake_cpplint_FOUND TRUE)
  ament_lint_auto_find_test_dependencies()
endif()

ament_package()

TFDY/qt_ros_demo

这个是我配置后的qt_ros_demo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS2 + Qt5 cmake的CMakeLists.txt文件配置 的相关文章

随机推荐

  • 关系模式的基本概念

    为了更好地存储数据 xff0c 需要将现实世界的事物及其关系进行层层抽象 xff0c 从而得到数据模型 使用关系数据模型的数据库系统是现在的主流数据库系统 数据模型是数据库的框架 xff0c 该框架描述了数据及其联系的组织方式 表达方式和存
  • 惯性器件分析—— ICM-42688-P

    2019年年底新推出的一款很赞的IMU 陀螺特性 加计特性 相关链接 官网DataSheet xff1a https invensense tdk com download pdf icm 42688 p datasheet 两家IMU对比
  • vim学习导航

    vim学习曲线陡峭 xff0c 其实和开始学习键盘打字和双拼打字的过程差不多 以前练习打字是因为小学电脑课没游戏玩 xff0c 只能玩金山打字的 警察抓小偷 xff1b 学习双拼主要动力是为了打字手手不酸 xff0c 能尽量跟上思维速度 而
  • word论文格式调整

    目录 注意事项 论文框架搭建 论文分块 页边距 页眉 页脚 样式 默认样式 正文 标题 参考文献 致谢 目录 图表 参考文献 公式 最后 注意事项 1 使用同一个word版本编辑 xff0c 避免格式不兼容 本文可能不适用于WPS 本文用o
  • 符号编码与乱码问题

    目标 xff1a 解释符号与编码 xff0c 分析乱码问题 xff0c 于是就能明明白白地处理大多数符号乱码问题了 符号与编码 以C 43 43 为例 xff0c 符号A的 十进制 编码为65 即 39 A 39 为65 其中 xff0c
  • PWM变模拟信号(积分电路 )

    就是简单的积分电路 频率不变 xff0c 积分后的电平相当于把高电平的电压和对应的时间的面积 xff0c 平均到一个周期里 基本上占空比是50 xff0c 转换的电压 xff0c 就是最高电压的50 xff0c 占空比30 xff0c 模拟
  • 如何生成汇编代码文件

    61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • Ardupilot SITL——arducopter 操作步骤

    打开cygwin输入 cd ardupilot ArduCopter Tools autotest sim vehicle py map console xff08 默认master下版本arducopter xff0c 默认模拟 四轴 x
  • 3-catkin包介绍与构建

    本教程简单介绍ROS1的catkin包 至于为什么选择deepin而不是ROS通用的ubuntu 也仅仅是为了支持国产系统 鉴于本人水平有限 xff0c 如哪位攻城狮网友发现本文存在的问题 xff0c 烦请留言指正 xff0c 谢谢 cat
  • make与cmake入门

    文章目录 1 手动链接与编译2 make编译工具2 1 介绍makefile2 2 makefile三要素2 3 make工作原理2 4 实战案例1案例2案例3案例4 2 5 常见的自动化变量解析 3 使用cmake进行编译3 1 介绍cm
  • RK1126平台项目总结

    项目的大概流程是 从摄像头读数据然后经过ai分析 输出ai分析结果编码成2路venc的流 然后 起一个rtsp服务器 供后续模块 处理 但是从需求来看的话其实很简单 但是实际上做的时候还是会遇到一些坑的 程序起来之后会起一个http服务 等
  • Keil uVision5开发步骤备忘

    1 安装 2 授权 xff1a File gt License Management xff0c AddLIC 3 参照开发手册 xff0c 配置keil环境 xff1a 1 添加ET199模拟器 xff0c 复制SDK里的ET199Sim
  • 使用杉川3i-T1单线激光雷达和Cartographer库SLAM问题及解决

    用Cartographer做二维的激光SLAM xff0c 用杉川给的ROS例子发布LaserScan数据 xff0c 发现在Rviz中显示的数据 xff0c 本来应该是平直的墙变成弧形的 xff0c 建图也是混乱的 xff0c 如下图 x
  • TI毫米波雷达 MIMO (2TX4RX)设置

    我们知道xWR1243和xWR1443 EVM是3TX4RX雷达 xff0c xWR1642 EVM是2TX4RX雷达 xff0c 我们不仅要掌握1TX4RX模式的使用还要学会使用MIMO雷达模式 本文主要介绍如何在mmWave Studi
  • 以Apollo为例学习/分析自动驾驶运动规划算法

    这篇文章写得很粗糙 xff0c 作为我入门学习的笔记 xff0c 其中的思路 分析很可能不正确 xff0c 也希望有在工业界工作的朋友能给我提出一些意见建议 这将是一篇大杂烩 xff0c 也是我一直在学习的主线 想要一下子整理清楚还是很困难
  • 二次规划(QP)与OSQP求解器

    目录 二次规划 xff08 QP xff09 OSQP 求解器 OSQP eigen接口 二次规划 xff08 QP xff09 优化在很多领域都发挥着重要应用 xff0c 其中自动驾驶的运动规划可以看做一个优化问题 xff0c 根据实际情
  • Jetson TX2 入门 ——介绍

    暑假留校 xff0c 老师给我们拿了两块开发板 xff0c 一个是英伟达的Jetson TX2 xff0c 一个是up squared xff0c 让我们先熟悉开发板 xff0c 为明年的比赛做准备 这两个板子是前几届学长做比赛用过的 自己
  • 2.1.2 激光雷达

    更多内容 xff0c 请关注 xff1a github xff1a Autopilot Updating Notes gitee Autopilot Updating Notes 激光雷达是自动驾驶领域非常依赖的传感器 xff0c 越来越多
  • 2.1.5 GPS定位导航

    更多内容 xff0c 请关注 xff1a github xff1a Autopilot Updating Notes gitee Autopilot Updating Notes GPS是Global Positioning System
  • ROS2 + Qt5 cmake的CMakeLists.txt文件配置

    ROS2 QT实现学习笔记 1 1 功能包的创建和编译 ROS2 Foxy 43 Qt5 on Linux Platform 按上面两个文章配置后的目录结构 build CMakeLists txt include mainwindow h