2017-02-08 24 views
1

В настоящее время я пытаюсь отфильтровать pointCloud с помощью PCL благодаря статистическому исправлению без использования ROS, используя только PCL I, установленный через official github repository. Я использовал this в моем коде, и я получаю следующее сообщение об ошибке при линковании:Проблема с PCL и CMake: StatisticalOutlierRemoval undefined при связывании

CMakeFiles/tests/11_pcl/removeOutliers.dir/removeOutliers.cpp.o: In function `pcl::StatisticalOutlierRemoval<pcl::PointXYZRGB>::applyFilter(std::vector<int, std::allocator<int> >&)': 
removeOutliers.cpp:(.text._ZN3pcl25StatisticalOutlierRemovalINS_11PointXYZRGBEE11applyFilterERSt6vectorIiSaIiEE[_ZN3pcl25StatisticalOutlierRemovalINS_11PointXYZRGBEE11applyFilterERSt6vectorIiSaIiEE]+0x1): undefined reference to `pcl::StatisticalOutlierRemoval<pcl::PointXYZRGB>::applyFilterIndices(std::vector<int, std::allocator<int> >&)' 
CMakeFiles/tests/11_pcl/removeOutliers.dir/removeOutliers.cpp.o:(.rodata._ZTVN3pcl25StatisticalOutlierRemovalINS_11PointXYZRGBEEE[_ZTVN3pcl25StatisticalOutlierRemovalINS_11PointXYZRGBEEE]+0x48): undefined reference to `pcl::StatisticalOutlierRemoval<pcl::PointXYZRGB>::applyFilter(pcl::PointCloud<pcl::PointXYZRGB>&)' 

В моем CMakeList у меня есть следующие строки:

find_package(PCL 1.3 REQUIRED COMPONENTS common io visualization) 
include_directories(${PCL_INCLUDE_DIRS}) 
link_directories(${PCL_LIBRARY_DIRS}) 
add_definitions(${PCL_DEFINITIONS}) 

и:

add_executable(tests/11_pcl/removeOutliers removeOutliers.cpp) 
target_link_libraries(tests/11_pcl/removeOutliers ${PCL_LIBRARIES} ${OpenCV_LIBS})  

В моем CPP файл Я только пытался инициализировать удаление выброса с помощью:

pcl::StatisticalOutlierRemoval<pcl::PointXYZRGB> sor; 

И у меня есть следующие заголовки:

#include <pcl/common/common_headers.h> 
#include <pcl/features/normal_3d.h> 
#include <pcl/io/pcd_io.h> 
#include <pcl/visualization/pcl_visualizer.h> 
#include <pcl/console/parse.h> 

//Filters 
#include <pcl/point_types.h> 
#include <pcl/filters/statistical_outlier_removal.h> 

я думаю, я мог бы недостающий компонент в PCL ... Любая идея?

ответ

0

ОК, я нашел решение. Я фактически отсутствовал компонент в PCL (фильтры).

find_package(PCL 1.3 REQUIRED COMPONENTS common io visualization filters) 

И теперь все хорошо.

 Смежные вопросы

  • Нет связанных вопросов^_^