使用资源和 ROS (catkin_make) 使用 CMake 编译 Qt 项目

     2023-02-23     296

关键词:

【中文标题】使用资源和 ROS (catkin_make) 使用 CMake 编译 Qt 项目【英文标题】:Compiling a Qt project with CMake using resources and ROS (catkin_make) 【发布时间】:2015-11-23 12:03:05 【问题描述】:

我正在使用 cmake 编译一个 Qt 项目(它也使用 catkin,因为这确实是一个 ROS 项目但我认为问题与此无关)。在我开始使用图像并添加一个 qrc 文件来处理它们之前,一切都编译并运行良好。当我运行 cmake 时出现此错误:

make[2]: *** No rule to make target `/home/myname/development/ros/src/dls_gui/images/slide-groove.png', needed by `dls_gui/qrc_dls_gui.cpp'.  Stop.

我的 CMakeList 文件是这样的:

cmake_minimum_required(VERSION 2.8.11)
project(dls_gui)

# Find the QtWidgets library
find_package(Qt5Widgets)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)

# catkin related
find_package(catkin REQUIRED COMPONENTS roscpp sensor_msgs urdf)

include_directories($catkin_INCLUDE_DIRS include)

# source, header and resources files list
set(CPP_SOURCES src/main.cpp src/mainwindow.cpp src/basewidget.cpp src/rosQtNode.cpp src/joints_sliders.cpp src/superslider.cpp)
set(CPP_HDRS include/mainwindow.h include/basewidget.h include/rosQtNode.hpp include/joints_sliders.hpp include/superslider.hpp)
set(QRC_RESOURCES $CMAKE_CURRENT_SOURCE_DIR/dls_gui.qrc)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)

## Declare a catkin package
catkin_package()

# Add the include directories for the Qt 5 Widgets module to
# the compile lines.
include_directories($Qt5Widgets_INCLUDE_DIRS)

# Use the compile definitions defined in the Qt 5 Widgets module
add_definitions($Qt5Widgets_DEFINITIONS)

# Generate headers from ui files
qt5_wrap_ui(UIS_HDRS src/mainwindow.ui)

# Generate moc files from cpp
qt5_wrap_cpp(MOC_SOURCES $CPP_SOURCES $CPP_HDRS)

# Generate resources 
qt5_add_resources(RESOURCES_RCC $RESOURCE)

# Add compiler flags for building executables (-fPIE)
set(CMAKE_CXX_FLAGS "$CMAKE_CXX_FLAGS $Qt5Widgets_EXECUTABLE_COMPILE_FLAGS -std=c++11")

## Ros include dirs
include_directories(include $catkin_INCLUDE_DIRS)

# Tell CMake to create the helloworld executable
add_executable(dls_gui $CPP_SOURCES $UIS_HDRS $MOC_SOURCES $QRC_RESOURCES)
add_executable(testRos src/testRos.cpp)
qt5_use_modules(dls_gui Widgets)

#Link the helloworld executable to the Qt 5 widgets library.
target_link_libraries(dls_gui Qt5::Widgets $catkin_LIBRARIES)

target_link_libraries(testRos $catkin_LIBRARIES)

qrc 文件是:

<!DOCTYPE RCC><RCC version="1.0">
<qresource prefix="/images">
    <file>images/slide-groove.png</file>
    <file>images/slide-handle.png</file>
</qresource>
</RCC>

我在 ubuntu 14.04 机器上使用 cmake 2.8.12.2。

【问题讨论】:

试试set(CMAKE_AUTOMOC OFF) 我设置了它,但最后我只是将其删除。它没有做任何事情。至少在我的 cmake 版本中没有。 【参考方案1】:

显然这是猫猫的问题。我删除了catkin创建的build目录,再次运行catkin_make,现在可以编译了。

注意:我只是对 cmake 文件进行了小幅编辑。我在 SO 上抄错了。

【讨论】:

所以,请关闭此问题(以告知其他人他们不应将时间花在阅读问题上)。 遗憾的是,这个过程对于catkin 来说是非常必要的。如果某些事情由于非显而易见的原因不起作用,第一次尝试应该始终是删除 builddevel 目录并再次运行它,因为这通常可以解决问题:) @llya 我还要再等一天才能关闭它。

在 Windows 10 的 ROS 中使用 catkin_make 时出现问题

】在Windows10的ROS中使用catkin_make时出现问题【英文标题】:Problemusingcatkin_makeinROSwithwindows10【发布时间】:2021-05-0821:11:40【问题描述】:我已经在Windows10上安装了rosNoetic。当我执行catkin_make时,我收到需要Ninja的cmake错误。尽管我... 查看详情

ROS旋律catkin_make失败

】ROS旋律catkin_make失败【英文标题】:ROSMelodiccatkin_makefail【发布时间】:2019-03-1906:58:16【问题描述】:所以我的catkin_make失败并出现错误AttributeError:\'module\'objecthasnoattribute\'Interpreter\'当我搜索解决方案时,我发现问题在于em和empy... 查看详情

无法使用 catkin_make 构建 ROS 包。对包树感到困惑

】无法使用catkin_make构建ROS包。对包树感到困惑【英文标题】:NotabletobuildROSpackagewithcatkin_make.Confusedbypackagetree【发布时间】:2019-10-0120:50:18【问题描述】:我希望从这个github页面运行存储在vehicle/launch/中的main.launchhttps://github.com/... 查看详情

build一个ros的package

1.记住source环境设置#source/opt/ros/%YOUR_ROS_DISTRO%/setup.bash2.使用catkin_make  可以将catkin_make理解为结合了cmake和make,在标准的CMakeWorkflow中。#Inacatkinworkspace$catkin_make[make_targets][-DCMAKE_VARIABLES=...]  如果不熟悉 查看详情

ROS catkin_make:重建包

】ROScatkin_make:重建包【英文标题】:ROScatkin_make:rebuildpackage(s)【发布时间】:2017-10-2120:00:21【问题描述】:我发现我错误地将依赖项“std_msgs”命名为“std_msg”。所以我修复了!但是等等,catkin仍然认为草坪机器人描述需要“st... 查看详情

ros学习笔记

...项目目录,同时生成src文件夹cd~/catkin_ws///进入项目目录catkin_make//编译项目,即使什么文件也没有也可以编译sourcedevel/setup.bash//执行编译生成的脚本文件,这会使当前项目目录加入环境变量。每次开启终端都要设置echo$ROS_PACKAGE_PA... 查看详情

编写ros程序--helloros

...文件    ③编译工作区(在工作区目录下)第一次运行catkin_make命令时,会生成build和devel两个子目录    ④设置环境变量setup.bash 即sourcedevel/setup.bash (此脚本文件在devel目录中生成)  3.2.2运行程序    首先启动rosco... 查看详情

“CMake 错误:CMake 无法确定目标的链接器语言” 当我 catkin_make ROS 工作空间时出现错误

】“CMake错误:CMake无法确定目标的链接器语言”当我catkin_makeROS工作空间时出现错误【英文标题】:"CMakeError:CMakecannotdeterminelinkerlanguagefortarget"TheerrorsappearedwhenIcatkin_makeaROSworkingspace【发布时间】:2021-04-1512:20:49【问题描... 查看详情

ros开发

...空间:catkin_init_workspace   编译ROS的catkin工作空间:catkin_make   读取当前catkin工作空间的环境变量:sourcedevel/setup.sh  验证ROS工作空间的环境变量加载成功:echo$ROS_PACKAGE_PATHKDevelop使用:  Haveyoutriedstarting 查看详情

catkin / ROS:如何在使用子模块时正确指定包含路径

...419:05:09【问题描述】:我正在使用ROS构建一个项目,因此catkin_make来构建我的ROS节点和库。我面临的问题是:我在一个包(包A)中使用了一个git子模块(因此,我有一个分层的包含文件夹结构) 查看详情

ros官方教程知识点总结[低阶阶段](代码片段)

...基于python3运行的,我们需要对自己编写的功能包使用catkin_make-DPYTHON_EXECUTABLE=/usr/bin/python3编译。该命令将会配置catkin_make使用python3,而之后的构建中可以只使用catkin_make.$echo$ROS_PACKAGE_PATH/home/cold/liguang/specialpacks/ws_livox_c... 查看详情

ros错误及其解决方法(代码片段)

新建工作空间,在执行catkin_make的时候报错Thespecifiedbasepath“/home/ghy/catkin_qt”containsaCMakeLists.txtbut“catkin_make”mustbeinvokedintherootofworkspace…..解决方法:unlink./CMakeLists.tx2.在ros中启动可视化工具[比如r 查看详情

ros 找不到 OpenCV ,路径 /usr/local/

...penCV安装在默认路径/usr/local中,但是当我在工作站中使用catkin_make构建程序时,它显示Projectcv_bridge指定/usr/include/opencv作为包含目 查看详情

catkin_make 中的 cmake 版本与全局 cmake 版本不同?

】catkin_make中的cmake版本与全局cmake版本不同?【英文标题】:cmakeversionincatkin_makedifferentfromglobalcmakeversion?【发布时间】:2019-07-2207:08:33【问题描述】:我正在尝试使用catkin在ROS中构建一些包。当我在***目录中运行catkin_make时,我... 查看详情

ros1noetic和ros2foxy系统资源消耗对比(以turtlesim遥控为例)

...耗电!ROS2比ROS1耗电!更直白一些:ROS2机器人使用相同电池比ROS1续航短!ROS2机器人使用相同电池比ROS1续航短 查看详情

ros错误及其解决方法(代码片段)

新建工作空间,在执行catkin_make的时候报错Thespecifiedbasepath“/home/ghy/catkin_qt”containsaCMakeLists.txtbut“catkin_make”mustbeinvokedintherootofworkspace…..解决方法:unlink./CMakeLists.tx2.在ros中启动可视化工具[比如rqt]时报错解决方法:... 查看详情

在一个 QtCreator 版本中使用 cmake 构建失败,而它与另一个版本以及来自终端的 catkin_make 一起使用

...中使用cmake构建失败,而它与另一个版本以及来自终端的catkin_make一起使用【英文标题】:BuildingwithcmakefailsinoneQtCreatorversionwhileitworkswithanotherandalsowithcatkin_makefromterminal【发布时间】:2019-03-2209:08:13【问题描述】:我正在尝试构建... 查看详情

ros系列_学习一

...2、尝试编译新空间      cd~/catkin_ws/      catkin_make   3、使用前     查看详情