c++ - 在 Eclipse 中使用 PCL

标签 c++ eclipse ubuntu cmake point-cloud-library

我希望在 Ubuntu 上将 PCL 与 Eclipse 结合使用。现在,这就是我到目前为止所做的:

a) 使用 apt-get 安装 PCL:

sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all

b) 在 eclipse 中创建新项目 ~/workspace/hello_pcl/

c) 在上面创建的文件夹中 src/pcd_write.cpp来自 this来源。

d) 按照 CMakeLists.txt 创建:

cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
project(hello_pcl)
find_package(PCL 1.3 REQUIRED COMPONENTS common io)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable(pcd_write_test pcd_write.cpp)
target_link_libraries(pcd_write_test ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES})

e) 设置包含路径 /usr/include/pcl-1.7/在项目设置中

我的问题是:我现在应该如何使用 Eclipse 构建项目?我应该用 cmake 制作项目吗:

cd ~/workspace/hello_pcl/build
cmake ../src
make

还是我应该做点别的?我是 cmake 的新手。

我想我应该将库添加到项目设置中,但在 pcl 页面上没有找到,这些库的名称是什么...

编辑:

好的,多亏了评论,我才能够创建并运行 hello_pcl 应用程序(我使用了来自 How to configure eclipse CDT for CMake 的解决方案),但现在我遇到了进一步的问题。应用程序可以运行,但 Eclipse 代码编辑器仍然会在所有 PCL 相关命令下划线并将它们标记为 Field [...] could not be resolved以及包括 Unresolved inclusion [...] .奇怪的是,#include <iostream> makrs 也未解决。我应该以某种方式包含 PCL 库吗?

最佳答案

我已经设法解决了我的问题,这就是我所做的:

基本上,从 a) 到 d) 的点是正确的(尽管我创建的项目不是在 eclipse 工作区文件夹中,而是在 ~/ 中)。现在是诀窍:看起来,当遵循将 CMake 与 Eclipse CDT 结合使用的典型工作流程时,索引器的行为不正确。即使在项目属性中将特定包含路径添加到 Path 和 Symbols 之后。

这里重要的是,在创建 CMakeLists.txt 之后(也许开始时最好为所有库设置 target_link_libraries - ${PCL_LIBRARIES}),必须使用(在我的例子中)构建项目:

cd ~/hello_pcl/build
cmake -G "Eclipse CDT4 - Unix Makefiles" ../src

当然,如果你想要Debug构建,你必须指定适当的选项。

下一步是将项目添加到 eclipse 工作区,但不是作为 Makefile 项目,而是作为一般项目,即: 文件 -> 导入 -> 常规 -> 将现有项目导入工作区。 将构建文件夹的路径放入选择根目录(在我的例子中为~/hello_pcl/build)并单击Finish。

这是索引器解析所有包含的时刻。这需要很多时间。但在那之后,一切似乎都运行良好。

关于c++ - 在 Eclipse 中使用 PCL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25461350/

相关文章:

ubuntu - Nginx + Passenger + Rails - 403 禁止

c++ - 如何在 C++ 中生成具有奇怪模式的数字

c++ - 为什么我按一个字母时会出现无限循环?如何更改以进行错误检查?

Android 调试/运行配置

java - 在 Eclipse 调试时更改长数组的值

linux - 如何打开编写Python程序的页面,编译并运行它并查看输出?

c++ - 使用带有 --extract-all 的 xgettextt 处理复数

c++ - 为什么当图像符合预期时,我会收到关于图像大小的 opencv 错误?

java - 由于 org.eclipse.core.runtime 无法启动 eclipse

unix - 我的服务器无法在端口 80 上监听