Я пытаюсь настроить PCL с помощью eclipse. Я никогда не делал никаких материалов с CMake, поэтому я действительно не знаю, что происходит.
Я установил PCL с apt-get
. Затем я создал папку ~/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
Что касается последнего, я импортировал созданный проект в eclipse с File → Import → C/C++ → Существующий код в качестве проекта Makefile.
Моя проблема: после этого приложение работает правильно, но метки редактора Eclipse отмечают, что все включает в себя Unresolved inclusion
и почти каждую функцию как Unresolved symbol
. Как ни странно, он делает это также с #include <iostream>
. Я понял, что это проблема с индексатором. Поэтому я добавляю /usr/include/C++/4.8
и /usr/include/pcl-1.7
в свойствах проекта → C/C++ general → Контуры и символы в вкладке Включает вкладку и язык GCC C++. Похоже, что они разрешили некоторые из проблем, но есть еще функции, отмеченные красным (см. Снимок экрана).
Кто-нибудь знает, как решить эту проблему?
Я решил свою проблему.
Похоже, что в этом случае рабочий процесс typecas для использования Eclipse CDT с CMake делает работу индексатора неуместной.
То, что я сделал, после вызова команды cmake
, импортирует проект не как проект Makefile, а Import → General → Существующие проекты в рабочее пространство.
После импорта проекта таким образом, индексатор занимает очень много времени (и я полагаю, что он может раздавить Eclipse, если проект достаточно велик) для синтаксического анализа всех включений. Но после этого все работает нормально.