Как собрать проект PCL

Я пытался запустить один из показанных примеров библиотеки Point Cloud (http://pointclouds.org/documentation/tutorials/using_pcl_pcl_config.php#using-pcl-pcl-config) на веб-сайте PCL все утро и все еще не могу запустить его!

Вот что я сделал: я установил на свой компьютер программу установки библиотеки Point Cloud PCL 1.6.0 All-In-One для MSVS 2010 (64-разрядная версия), а затем установил пару библиотек, которые мне понадобились (Boost и Eigen). . После того, как я добавил все зависимости и библиотеки, необходимые в MS Visual Studio 2010 (PLC, boost и eigen), я все еще получаю эти досадные ошибки:

(Я также пробовал использовать CMake gui для Windows, но он сообщает о большом количестве ошибок при создании проекта)

1> PCL.obj: ошибка LNK2019: неразрешенный внешний символ "void __cdecl pcl :: console :: print (enum pcl :: console :: VERBOSITY_LEVEL, char const *, ...)" (? Print @ console @ pcl @@ YAXW4VERBOSITY_LEVEL @ 12 @ PBDZZ), на который есть ссылка в функции _main

1> PCL.obj: ошибка LNK2001: неразрешенный внешний символ "public: virtual int __thiscall pcl :: PCDReader :: readHeader (class std :: basic_string, class std :: allocator> const &, struct sensor_msgs :: PointCloud2 &, class Eigen :: Matrix &, class Eigen :: Quaternion &, int &, int &, unsigned int &, int) "(? ReadHeader @ PCDReader @ pcl @@ UAEHABV? $ Basic_string @ DU? $ Char_traits @ D @ std @@ V ? $ allocator @ D @ 2 @@ std @@ AAUPointCloud2 @ sensor_msgs @@ AAV? $ Matrix @ M $ 03 $ 00 $ 0A @ $ 03 $ 00 @ Eigen @@ AAV? $ Quaternion @ M $ 0A @@ 8 @ AAH4AAIH @ Z)

1> PCL.obj: ошибка LNK2001: неразрешенный внешний символ "public: virtual int __thiscall pcl :: PCDReader :: read (class std :: basic_string, class std :: allocator> const &, struct sensor_msgs :: PointCloud2 &, class Eigen :: Matrix &, class Eigen :: Quaternion &, int &, int) "(? Read @ PCDReader @ pcl @@ UAEHABV? $ Basic_string @ DU? $ Char_traits @ D @ std @@ V? $ Allocator @ D @ 2 @@ std @@ AAUPointCloud2 @ sensor_msgs @@ AAV? $ Matrix @ M $ 03 $ 00 $ 0A @ $ 03 $ 00 @ Eigen @@ AAV? $ Quaternion @ M $ 0A @@ 8 @ AAHH @ Z)

Любая, любая помощь будет очень признательна. Эта штука отнимает у меня столько часов и сводит с ума.

Благодарность!!


person Nicolai    schedule 09.05.2013    source источник
comment
Почему вы установили Boost и Eigen поверх, если универсальный установщик уже включает их?   -  person Sassa    schedule 10.05.2013
comment
В этой попытке я просто установил PCL (без сторонних материалов), а затем я установил библиотеки, необходимые для примера кода. Я попытался также установить полный пакет PCL + стороннего производителя, но все равно получаю те же ошибки ....   -  person Nicolai    schedule 10.05.2013


Ответы (1)


У вас есть ошибка компоновщика, поэтому вам не хватает файла библиотеки или вы не связываете их. Или вы смешиваете 32-битные и 64-битные конфигурации и библиотеки.

Вы выполнили все шаги, которые я описал в этом ответе?

Я рекомендую использовать универсальный установщик, если вы действительно не знаете, как и зачем PCL нужны сторонние библиотеки.

person Oszkar    schedule 23.05.2013
comment
Спасибо!! Мне не хватало добавления дополнительных зависимостей в компоновщик. Однако самый простой pcd_write.cpp сейчас работает, но pcl_visualizer_demo.cpp не работает из-за сбоя неразрешенных символов VTK. Я добавил пути к каталогам include и библиотек в каталогах VC ++. Должен ли я добавлять каждый файл VTK с расширением .lib в Linker-Input-Additional Dependencies ?? В папке VTK lib примерно 100 файлов .lib! - person Nicolai; 27.05.2013
comment
нет, технически вам нужно добавить только те, которые вы используете - при этом иногда трудно понять, какие из них вам нужны, поэтому проще добавить их все :) (вы можете исключить явно ненужные, например те, которые связаны с базами данных (sql, mapreduce) или форматами изображений (tiff / jpeg / dicom) и добавляют все остальные) - person Oszkar; 02.06.2013