导入QT导入Ros工程时出现以下错误:
Call Stack (most recent call first):
/opt/ros/melodic/share/catkin/cmake/all.cmake:208 (safe_execute_process)
/opt/ros/melodic/share/catkin/cmake/catkinConfig.cmake:20 (include)
CMakeLists.txt:58 (find_package)
原因:ros的环境没有加载到qtcreator中。
先确保已经安装依赖
sudo apt-get install ros-melodic-qt-create
sudo apt-get install ros-melodic-qt-build
导入QT的前提是,项目已经catkin_make 编译成功(有build和devel)。
方法一
安装qt-ros-plugin,可直接在原先qtcreator中添加插件或下载自带ros插件的qtcreator。 在工作空间(src这一层文件夹,不要进入src)新建一个QT-ROS工程。
随后,选择catkin_make。
一直下一步,创建成功。
此时,点击绿色三角是无法运行的,需进一步设置启动项,点击左侧项目,选择run,点击浏览。
将/devel/lib/example(此处根据你自己的项目名称每个人不同)/内的执行文件选中,再次按F5即可运行。
方法二
qtcreator加入命令行环境,在命令行中直接启动qtcreator(因为ros已在环境变量中,所以此时ros环境也加入到qtcreator中了)在其中输入如下图所示。
/home/xxxxxx根据自己安装QT位置来写。
随后赋予权限
sudo chmod 777 /usr/bin/qtcreator
此时,可通过命令行输入qtcreator启动已加载ros环境的qtcreator。
随后,选择要导入的ROS工程,选择工作空间内,src内的CMakeLists导入成功。直接点击绿色按钮即可运行(与方法一不同不用选择/devel中的文件了)。
但此时需要注意,qtcreator打开的是5.12版本,在其中直接点击编译运行是用5.12版本进行,但在有ROS-melodic的环境中使用命令行编译时,使用的qt是usr/lib中的5.9版本,若想一并改过来,需要修改环境变量。
sudo gedit ~/.bashrc
#在其中输入
export PATH=/home/(你的电脑用户名)/Qt5.12.12/5.12.12/gcc_64/bin:$PATH
sudo gedit /usr/bin/qtcreator
#在usr/bin中添加qtcreator启动
以上两种方法解决问题,方法一是调用qt-ros-plugin,方法二仍用ros本身,导入CMakeLists。
后续课程还有其他音频相关依赖
sudo apt-get install qtmultimedia5-dev