首先是ros官网关于IDE的教程:

http://wiki.ros.org/IDEs#QtCreator

1、qtcreator安装

从官网上下载.run文件,

https://info.qt.io/download-qt-for-application-development

只选择qt工具进行安装,没有加sudo,所以.desktop文件在~/.local/share/applications

打开gedit DigiaQt-qtcreator-community.desktop 添

加Exec=bash -i -c

[Desktop Entry]
Type=Application
Exec=bash -i -c /home/ubuntu/Tools/qt/Tools/QtCreator/bin/qtcreator
Name=Qt Creator (Community)
GenericName=The IDE of choice for Qt development.
Icon=QtProject-qtcreator
StartupWMClass=qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;

  

为了让qt能够在启动时候添加ros环境

2、选择ros编译工具

官网上有rosbuild是老版本,在indigo之后就没有使用了

还有catkin_make 是目前用的编译工具

还有catkin tool 但是去网站上看了还是beta版本就没用

于是选择catkin_make

按照官网上一步步做下来

新建工作空间

mkdir -p ~/catkin_ws/src

cd ~/catkin_ws/src

catkin_init_workspace

cd ~/catkin_ws/

catkin_make

从网上下载一个ros包放在src文件夹下

更改src/CmakeList.txt

project(RosWorkSpace)
#Add custom (non compiling) targets so launch scripts and python files show up in QT Creator's project view.
file(GLOB_RECURSE EXTRA_FILES */*)
add_custom_target(${PROJECT_NAME}_OTHER_FILES ALL WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} SOURCES ${EXTRA_FILES})

cmake  -DCMAKE_BUILD_TYPE=Debug -DCATKIN_DEVEL_PREFIX=../devel -DCMAKE_INSTALL_PREFIX=../install ../src/

然后到命令行里进入到工作空间进行catkin_make

之后启动Qt

打开qt->open project->点击src/CmakeList.txt->到project下更改build directory为catKin build文件夹

就可以run cmake 了

不这么做就会出现找不到catkin

然后之后会一直出现提示cmake configuration更改了,就算选择overwrite changes in cmakelist.txt,还是没用,原因在于ros的cmakelist.txt是只读的

删了原来的cmakelist.txt.user再进入打开一遍工程就好了

最后效果

当往src里添加新的包时(已经写好CmakeList.txt),点击run cmake后这个工作空间里会出现那个包

不过都需要先进行catkin_make之后才能够直接在qt里build

下面是一个正确CMakeList.txt

cmake_minimum_required(VERSION 2.8.3)
project(pioneer_zed) set(tf_broadcaster_build 0)
set(tf_listner_build 0)
set(base_control_build 1) find_package(catkin REQUIRED COMPONENTS tf roscpp rospy turtlesim geometry_msgs nav_msgs)

#需要这个包是catkin包,可执行程序才会按照ros规则去安装,要不可执行程序会安装在build文件夹下而且也无法用rosrun + tab找出来
catkin_package() include_directories(
${catkin_INCLUDE_DIRS}
)
if(tf_broadcaster_build)
add_executable(tf_broadcaster src/tf_broadcaster.cpp)
target_link_libraries(tf_broadcaster ${catkin_LIBRARIES})
endif()
if(tf_listner_build)
add_executable(tf_listner src/tf_listner.cpp)
target_link_libraries(tf_listner ${catkin_LIBRARIES})
endif()
if(base_control_build)
add_executable(base_control src/base_control.cpp)
target_link_libraries(base_control ${catkin_LIBRARIES})
endif()

 今天qt突然不好用了,一些ros头文件找不到,我查看那些找得到ros头文件,发现那些ros头文件位于usr/include下面,而不是ros正常路径opt/ros/kinetic/include下面,应该是之前为了安装opencv nonfree模块,添加了一个repositoory,安装nonfree之后发现不好用将那个repository和nonfree包都删除了之后,还有一些关联包没有删除,而且我将opencv全删除了,再通过libopencv-dev文件来重新安装opencv,然后删除libopencv-dev(不让系统找到旧版本opencv,但是又得要下载,因为一些包依赖于这些opencv库)可能这个样子连带这删除了一些ros包,update之后就发现有些包依赖无法解决,于是用soft ware center查看服务器情况,发现之前设定的aliyun服务器又被重置了,于是更换服务器,但是系统跳出提示要sudo apt-get -f,然后用soft ware center update之后修复了,但是这个样子虽然修复了必要的库,但是没有按照ros原先安装顺序去安装ros,于是多出了在usr/include里一些ros文件,所以将这些包删除之后qt还是找不到相关头文件,原来能够在usr/include里找到的也找不到了,但是catkin_make可以编译过,而且我重新新建了一个工作空间还是没有用,反而使得kinect环境无法加载了,可能是因为没有initial catkin workspace。我仔细回忆ros安装过程,发现qt跟ros安装没有关系,ros安装全过程apt也没有改动什么系统变量,也没有改动过CmakeLists.txt,所以应该是qt出问题了,我重装qt没用,再重装qt新版本就好了。

如何删除同一个repository下所有包:

https://askubuntu.com/questions/37531/how-do-i-remove-all-packages-from-a-certain-repository

在使用社区版本QT忍无可忍之后卸载了下载apt版本的qtcreator

但是存在一个问题就是header如果没有add_exacuable进来就无法代码自动补全

下面是解决办法:

http://www.cnblogs.com/coderfenghc/archive/2012/07/08/2581734.html

https://stackoverflow.com/questions/34846706/ros-with-qtcreator-autocompletion/34914661#34914661

还存在一个问题就是加入bash -i -c 之后还是会出现无法找到catkin,连terminal里都tab不出来catkin_make了

解决办法:

一、先将build和devl清空

二、手动source /opt/ros/kinetic/setup.bash

三、按照http://www.cnblogs.com/hong2016/p/7550537.html

刷新以下catkin缓存

测试:

新建一个terminal

看看能不能catkin_make了

ros结合catkin_make和qtcreator的更多相关文章

  1. ROS关于cv_brige的使用

    最近想使用OpenCV 和ROS实现点云的拼接,实现三维重建,那么在学习了kinect的基本的使用方法以后我们知道,直接使用ROS 的包即可得到点云,深度图,rgb图等信息, roslaunch op ...

  2. 使用QtCreator作为ROS调试器

    如果你用过QtCreator,你一定会喜欢上它. 流畅的速度,强大的功能,优雅的外观,友好的界面,一切让人如此舒服.而且它支持从命令行作为调试器启动,只需加上-debug exe即可. 因此我想如果能 ...

  3. ubuntu16.04运行ros的时候编译工作空间catkin_make出现的一个问题Could not find a package configuration file provided by

    最近在进行ros里面的gazebo仿真之前需要对自己创建的工作空间进行编译,但是进行编译的时候输入catkin_make出现如下错误提示 查阅ROS问答社区之后发现两个比较有用的链接,如下 https ...

  4. 创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装。

    问题:创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装. 解决方法: source /opt/ros/kinetic/se ...

  5. ROS catkin_make error Could not find a package configuration file provided by "actionlib_msgs"

    在使用ROS catkin_make编译的时候,出现类似如下错误 CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cma ...

  6. Learning ROS: Ubuntu16.04下kinetic开发环境安装和初体验 Install + Configure + Navigating(look around) + Creating a Package(catkin_create_pkg) + Building a Package(catkin_make) + Understanding Nodes

    本文主要部分来源于ROS官网的Tutorials. Ubuntu install of ROS Kinetic # Setup your sources.list sudo sh -c 'echo & ...

  7. 删除某个ros包之后catkin_make冒错

    CMake Error at /home/ubuntu/Workspaces/rosProject/workspace1/devel/share/costmap_2d/cmake/costmap_2d ...

  8. ROS编译时(catkin_make)找不到bullet,Could NOT find Bullet (missing: BULLET_DYNAMICS_LIBRARY

    sudo apt-get install libbullet-dev

  9. How to build a GUI in ROS with Qt / C++

    p { margin-bottom: 0.1in; direction: ltr; line-height: 120%; text-align: left; widows: 2; orphans: 2 ...

随机推荐

  1. BZOJ [Poi2012]Fibonacci Representation

    找最近的数 记忆化 (我也不知道为什么对的) #include<cstdio> #include<algorithm> #include<map> using na ...

  2. android 布局preview 技巧

    最近开始看老外写的文章,博客,嗯,不能说比国人写的好,但是感觉看着很爽.真的,一手资料就是爽. 嗯,自己做得不错,第一次看外文博客,我知道自己怎么看的,一句话一句话看下来的,越看越有感觉. 下面这个 ...

  3. 让菜鸡讲一讲费用流(EK)

    让我再讲一个故事吧. 又有一些小精灵要准备从银月城(S)迁徙到Nibel山(T). 这两个地方之间的道路构成了一个网络. 每个道路都有它自己的容量,这决定了每天有多少小精灵可以同时从这儿通过. 和上一 ...

  4. Start with PJSIP on windows

    To overcome the project of HD video conferencing systerm,I should learn to use the PJSIP. I should m ...

  5. 1.0 python-client以及ui自动化介绍

     appium的client-----捕获元素和对元素进行操作都是在client里面去写脚本实现的,client会将你写的python脚本发送到appium server上,然后appium serv ...

  6. Python网络编程(epoll内核监听,多任务多进程)

    OJBK    接着昨天的说 select模块内的epoll函数还没说  说完epoll和本地套接字套接字基本就没了 今天主要是多进程   理论性东西比较多  主要是理解         epoll ...

  7. 常见数据结构图文详解-C++版

    目录 简介 一.数组 1. 静态数组 array 2. 动态数组 2.1. vector 2.2. priority_queue 2.3. deque 2.4. stack 2.5. queue二.单 ...

  8. Linux下samba编译与安装(Ubuntu和嵌入式linux)

    Ubuntu[i386-linux下安装过程] 1.安装samba $ sudo apt-get install samba $ sudo apt-get install smbfs (可选) $ s ...

  9. hadoop2.5.2学习及实践笔记(一)—— 伪分布式学习环境搭建

    软件 工具:vmware 10 系统:centOS 6.5  64位 Apache Hadoop: 2.5.2  64位 Jdk:  1.7.0_75  64位 安装规划 /opt/softwares ...

  10. linux常见的编码转换

    1.如何界定是utf-8编码还是其他如 ANSI 或者gb2312编码 以“浙”这个汉字为例,用16进制编码查看时,显示 D5 E3 为2个字节,则为 ansi或者gb2312编码 "苏&q ...