警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
使用 ROS 2 和 rviz2 的 Eclipse Oxygen [社区贡献]
设置
我们已经安装了 eclipse Oxygen 和 git。http://www.eclipse.org/egit/download/).
我们将 eclipse-workspace 与 ros2 软件包同名。这是不需要的。
提示:我们使用嵌套项目,因此一个 ROS-2 软件包使用一个 eclipse 工作区,因为即使是一个 ROS-2 项目,里面也有很多项目,这样看起来更 "干净"。

我们创建一个 C++ 项目


我们选择 ROS 2 软件包的名称作为项目名称。Makefile 项目和其他工具链。

然后点击完成

在 "项目浏览器 "中,我们可以看到我们的项目。

我们在项目中创建一个名为 "src "的文件夹

现在我们导入一个 git 仓库

我们输入版本库 URL

重要:我们使用之前创建的项目的 src 文件夹作为 git 仓库的目标文件夹。
提示:如果在选择目标文件夹路径时遇到问题,eclipse 对话框需要在名称字段中输入名称。

使用新项目向导导入

我们创建了一个常规->项目

使用与 git-repository 相同的名称作为项目名称。不需要。重要:"位置 "使用我们克隆 git 仓库的文件夹。

现在我们在 Project-Explorer 视图中看到了 git-project 和我们的项目。我们看到了两个相同的文件,但只有一个项目与 Egit 链接。

我们再次重复这一步骤。导入 git 仓库 pluginlib

重要提示:作为 "Destination->Directory(目标目录)",我们使用 src 文件夹内的文件夹。

重要: 我们使用克隆的 git 仓库中的文件夹作为新项目的位置

再次执行相同的程序。现在使用 tinyxml2_vendor git 仓库。

重要: 我们再次使用 src 文件夹内的文件夹

重要:将我们克隆的文件夹位置作为新项目文件夹。

现在,我们可以在 Project-Explorer 视图中看到所有 4 个项目。

如果我们点击 Project-Explorer 视图右上角的按钮,就可以将 Project-Presentation 更改为 Hirachical 视图。现在,它看起来就像硬盘上的 ROS-2 项目。但这种视图并不好,因为会丢失与 Egit 的链接。因此,请使用 "平面项目展示"。如果你想知道哪个作者写了哪个代码行等,那么 Egit 链接是个不错的选择。

我们转到 "C/C++ 构建 "部分,在 "构建命令 "中输入 "ment"。

转到 "行为 "选项卡,取消选择 "清洁",在 "构建 "文本框中输入 "构建"。

在 "构建项目 "之前,您需要关闭 eclipse。打开 shell 并获取 ROS-2 setup.bash 文件的源代码,然后 cd 进入 eclipse 项目的目录(此处为:/home/ubu/rviz2_ws/rviz2_ws),并从该目录下启动 eclipse。

现在,您可以使用代码自动完成、egit 注释、eclipse C/C++ 工具等。

Eclipse-indexer
如果打开 rviz2 的 main.cpp,您可能会看到许多 "未解决的包含"。您需要执行以下操作,以使它们消失,并使右键单击>Open-Declaration(打开声明)完全正常工作。进入 Project->Properties->C++General->Path-and-Symbols(路径和符号),在 References(引用)选项卡中选择 "ros2_ws"。重要:如果您为 ros2_ws 和 rviz2_ws 设置了不同的 eclipse 工作空间,您可以添加 ros2_ws,方法与后来添加 qt5 目录的方法相同。提示:只需添加 src 文件夹,例如 /home/ros/ros2_ws/ros2_ws/src,而不是 build 和 install 目录。

转到 C/C++-General->Path-and-Symbols(路径和符号)选项卡 "Source locations"(源位置),然后点击 "Link folder"(链接文件夹)。在那里选择 qt5 包含的位置。

然后就会看到类似下图的内容。您还可以在添加的源位置中添加 "排除"(过滤器),这样某些目录就不会被索引。这对 rviz2_ws 中的 "build"(构建)和 "install"(安装)目录很有帮助,因为它们包含重复的标题。

转到 C++General->Preprocessor includes,选择 CDT-GCC-Built-in-compiler-settings[共享],然后在文本框 "获取编译器规格的命令 "中输入以下内容
-std=c++14

然后转到 "C/C++-General->Indexer"(C/C++-一般->索引器)并选择图片中的以下内容。例如,"index unused headers as c files"(将未使用的头文件索引为 c 文件)是为了解决 QApplication 等问题,因为 QApplication 头文件的内容只有 "#include "qapplication.h"。

运行索引器后(这在后面会发生,所以你也会在后面看到),你可以看到它添加的内容

然后右键单击 rviz2 项目并选择 "Indexer->Rebuild"(重建索引),之后会看到右下方的进度条,可以看到它可以解决所有包含的问题。

使用 eclipse 调试
转到 "C/C++-Build",在构建命令中添加以下内容
-dcmake_build_type(构建类型=调试

然后在 eclipse 中进入 "运行->调试配置 "并添加以下内容,然后点击 "调试"。
