我试图用eclipse设置PCL。我从未做过任何CMake的事情,所以我真的不知道发生了什么。
我已使用apt-get
安装了PCL。接下来,我创建了文件夹~/hello_pcl/src
,我保存了pcd_write.cpp
文件并关注CMakeLists.txt
:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(hello_pcl)
find_package(PCL 1.2 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (pcd_write_exe pcd_write.cpp)
target_link_libraries (pcd_write_exe ${PCL_LIBRARIES})
接下来,我已经完成了:
cd ~/hello_pcl
mkdir build
cd build
cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug ../src
至于最后一个,我已经使用 File - >将已创建的项目导入到eclipse中导入 - > C / C ++ - > 现有代码为Makefile项目。
我的问题是:在此之后,应用程序正常运行,但Eclipse代码编辑器将所有包含标记为Unresolved inclusion
,并将几乎所有函数标记为Unresolved symbol
。奇怪的是,它也与#include <iostream>
一起使用。我发现,这是索引器的一个问题。因此,我在项目属性中添加了/usr/include/c++/4.8
和/usr/include/pcl-1.7
- &gt; C / C ++ general - &gt; 包含标签和 GCC C ++ 语言中的路径和符号。
它似乎解决了一些问题,但仍有功能,标记为红色(见截图)。
任何人都知道如何解决这个问题?
答案 0 :(得分:1)
我解决了我的问题。
看来,在这种情况下,使用Eclipse CDT和CMake的典型工作流使索引器工作变得不合时宜。
我所做的是,在调用cmake
命令后,导入的项目不是 Makefile项目,而是使用 Import - &gt; 一般 - &gt; 现有项目进入工作区。
以这种方式导入项目后,索引器需要花费很多时间(我想它可以粉碎Eclipse,如果项目足够大)来解析所有包含。但在那之后一切正常。