QT 调试ROS 但是打开工程出现错误,找不到roscpp.cmake之类
关于 QT如何加载ROS的相应的环境变量,
[Desktop Entry] Type=Application Exec=/home/viki/Qt5.2.0/Tools/QtCreator/bin/qtcreator Name=Qt Creator (Opensource) GenericName=The IDE of choice for Qt development. Icon=QtProject-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;
自己新建一个文本文档,填写这个内容,更改一个地方是Exec这个地方 加上bash -i -c 这个意思执行.bashrc。即加载source ros一些东西。
Exec=/home/viki/Qt5.2.0/Tools/QtCreator/bin/qtcreator然后这个文本文档可以存在任何地方,比如放在桌面,然后文本文档的名称叫做
DigiaQtOpenSource-qtcreator.desktop
.desktop这个必须加上, 双击应该能直接执行,如果不能执行,则更改下权限,让其能执行。
但是 cmake的时候,就会出现各种问题,例如下面,找不到啥。很纠结。
其实一部分原因是 C编译器找不到,解决办法就是 mananger kits 自己做一个 看下几个图
按照这样的节奏应该能用,但是当你打开roscpp等东西还是找不到,这个原因是一个环境变量在作怪,就是叫做
CMAKE_PREFIX_PATH 这个鬼东西,这个是是啥呢,
Path used for searching by FIND_XXX(), with appropriate suffixes added.
Specifies a path which will be used by the FIND_XXX() commands. It contains the “base” directories, the FIND_XXX() commands append appropriate subdirectories to the base directories. So FIND_PROGRAM() adds /bin to each of the directories in the path, FIND_LIBRARY() appends /lib to each of the directories, and FIND_PATH() and FIND_FILE() append /include . By default it is empty, it is intended to be set by the project. See also CMAKE_SYSTEM_PREFIX_PATH, CMAKE_INCLUDE_PATH, CMAKE_LIBRARY_PATH, CMAKE_PROGRAM_PATH.
这是官方的说法,大概就是帮你找找环境变量。
如果我们在终端 echo $CMAKE_PREFIX_PATH,发现里面竟然有ros的路径,但是在QT里面没有!!!
这很奇怪,我没找到根本原因,我的解决办法就是,在bulid setting 里面增加一下就是了
cmake一下就搞定了。
还有必须提及一下,有时候找不到,是因为你没有安装包,在设置之前,检查自己装包了没。一般的roscpp包肯定有,但是一些其他的就不容乐观了。