将 Eclipse Oxygen 与“rviz2”结合使用 [社区贡献]
设置
本教程假设已安装 Eclipse Oxygen、git 和 Egit (http://www.eclipse.org/egit/download/)。
在整个教程中,我们将 eclipse 工作区命名为与 ros2 包相同的名称,但这不是必需的。
提示:我们为每个 ROS-2 包使用嵌套项目和一个 Eclipse 工作区。
创建一个 C++ 项目。
选择 ROS 2 包名称作为项目名称。 选择 Makefile 项目和其他工具链。 .. image:: images/eclipse-oxygen-04.png
单击完成
我们的项目应该显示在“项目浏览器”中。
在我们的项目中创建一个名为“src”的文件夹。
导入 git 存储库。
输入存储库 URL。
重要提示:使用我们之前创建的项目的源文件夹作为目标文件夹。
提示:如果您在选择目标文件夹路径时遇到问题,Eclipse 对话框需要在名称字段中输入一个名称。
使用新项目向导导入。
创建一个 General->Project。
使用 git 存储库名称作为项目名称。 重要提示:使用我们克隆 git 存储库的文件夹作为“位置”。
git 项目和新项目应该在 Project Explorer 视图中可见。 相同的文件列出多次,但只有一个项目与 Egit 链接。
再次重复此过程。 导入 git 存储库 pluginlib。
重要提示:使用源文件夹内的文件夹作为“目标->目录”。
重要提示:使用我们克隆 git 存储库的文件夹作为新项目的位置。
使用 tinyxml2_vendor git 存储库运行相同的过程。
重要提示:再次使用源文件夹内的文件夹。
重要提示:使用我们克隆的文件夹的位置作为新项目文件夹。
现在,所有四个项目都应该在 Project Explorer 视图中可见。
单击“项目资源管理器”视图的右上角,我们可以将项目演示更改为分层视图。 现在它看起来像硬盘上的 ROS-2 项目。 但此视图失去了与 Egit 的链接,因此请使用平面项目演示。 如果您想查看哪位作者编写了哪行代码等,Egit 链接非常有用。
转到“C/C++ build”部分并将“ament”输入到“Build command”中。.
转到“行为”选项卡并取消选择“清理”并将“构建”放入构建文本框中。
在“构建项目”运行之前,我们需要关闭 Eclipse。 打开 shell 并获取 ROS-2 setup.bash 文件,然后进入 eclipse 项目的目录(此处:/home/ubu/rviz2_ws/rviz2_ws)并从该目录内启动 Eclipse。
现在代码完成、egit 注释、eclipse C/C++ 工具等都应该可以工作了。
Eclipse-indexer
打开 rviz2 的 main.cpp 可能会显示大量“未解决的包含”警告。 要解决此问题,请转到“项目”->“属性”->“C++ 常规”->“路径和符号”。 单击“引用”选项卡并选择“ros2_ws”。
转到 C/C++-General->Path-and-Symbols,单击“源位置”选项卡,然后单击“链接文件夹”。 选择 qt5 包含的位置。
应显示下一张图片。 最好将排除项添加到源位置,以便某些目录(如“Build”和“Install”)不会被编入索引。
转到 C++General->Preprocessor includes,选择“CDT GCC Built in Compiler Settings [Shared]”,然后在“获取编译器规范的命令”文本框中输入以下内容:
-std=c++14
转到“C/C++-General->Indexer”,然后选择图中的以下内容。 例如“index unused headers as c files”来解析例如 QApplication,因为 QApplication 头文件内容只有“#include “qapplication.h”。
运行索引器后(稍后会发生,因此您稍后也会看到这一点),您可以看到它添加了什么
之后,右键单击 rviz2 项目并选择“Indexer->Rebuild”,这将开始重建索引(右下角有一个图标显示进度)。 索引重建完成后,它应该能够解析所有包含内容。
使用 eclipse 进行调试
转到“C/C++-Build”并添加到构建命令:
-DCMAKE_BUILD_TYPE=Debug
然后在 eclipse 中转到“运行->调试配置”并添加以下内容并单击“调试”。