PCL (библиотека облака точек) 1.7 на Ubuntu 16.04 ошибка сборки LTS

Я обновил версию Ubuntu с 14.04 lts до 16.04 lts и столкнулся с проблемами при создании проектов, использующих библиотеку облака точек. (Раньше он хорошо работал в Ubuntu 14.04, и я создаю свои проекты с помощью qtcreator)

У меня есть предупреждающие сообщения:

предупреждение: libboost_system.so.1.54.0, необходимая /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_common.so, может конфликтовать с libboost_system. так.1.58.0

предупреждение: libboost_thread.so.1.54.0, необходимое для /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_common.so, может конфликтовать с libboost_thread. так.1.58.0

предупреждение: libboost_filesystem.so.1.54.0, необходимая для /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so, может конфликтовать с libboost_filesystem. так.1.58.0

предупреждение: libboost_iostreams.so.1.54.0, необходимое для /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so, может конфликтовать с libboost_iostreams. так.1.58.0

предупреждение: libboost_chrono.so.1.54.0, необходимое для /usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/libpcl_io.so, может конфликтовать с libboost_chrono. так.1.58.0

и ошибки:

~ / main.cpp: -1: error: undefined ссылка на `pcl :: visualization :: PCLVisualizer :: PCLVisualizer (std :: __ cxx11 :: basic_string, std :: allocator> const &, bool) '

~ / main.cpp: -1: error: undefined ссылка на `pcl :: visualization :: PCLVisualizer :: setPointCloudRenderingProperties (int, double, std :: __ cxx11 :: basic_string, std :: allocator> const &, int) '

~ / main.cpp: -1: error: undefined ссылка на `pcl :: visualization :: PCLVisualizer :: setPointCloudRenderingProperties (int, double, std :: __ cxx11 :: basic_string, std :: allocator> const &, int) '

~ / build-Desktop-Default / CMakeFiles / project_name.dir / main.cpp.o: -1: В функции `pcl :: search :: OrganizedNeighbor :: OrganizedNeighbor (bool, float, unsigned int) ':

~ / main.cpp: -1: ошибка: неопределенная ссылка на `pcl :: search :: Search :: Search (std :: __ cxx11 :: basic_string, std :: allocator> const &, bool) '

~ / build-Desktop-Default / CMakeFiles / project_name.dir / main.cpp.o: -1: В функции `pcl :: search :: OrganizedNeighbor :: OrganizedNeighbor (bool, float, unsigned int) ':

~ / build-Desktop-Default / CMakeFiles / project_name.dir / main.cpp.o: -1: В функции `pcl :: search :: OrganizedNeighbor :: OrganizedNeighbor (bool, float, unsigned int) ':

Я вижу конфликт между libboost_system.so.1.54.0 и libboost_system.so.1.58.0, но как его решить?


person 김진원    schedule 02.08.2016    source источник
comment
16.04 поставляется с другой версией Boost. Вам необходимо перенастроить и перестроить PCL (или любую библиотеку, использующую Boost, которую вы создали из исходников, если на то пошло).   -  person taketwo    schedule 04.08.2016
comment
У меня такая же ошибка, и я предполагаю, что это произошло из-за того, что обновление до 16.04 также обновляет версию libboost, а PCL необходимо перенастроить и собрать. Собираем PCL1.8 прямо сейчас и посмотрим, что получится.   -  person MrBomb1985    schedule 25.03.2017


Ответы (2)


Чтобы собрать pcl из исходного кода 16.04, следуйте этому руководству. . Но тогда нет причин не создавать PCL 1.8 вместо 1.7.x, поскольку он совместим с предыдущими версиями.

Кроме того, репозиторий Jochen Sprieckerhof для 1.7.2 устарел для 1.7.2, так как в Ubuntu 16.04 есть собственный репозиторий. Вы можете просто сделать

sudo apt-get update 
sudo apt-get install libpcl-dev

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

person Jan Hackenberg    schedule 02.08.2016

Возможно, вам стоит загрузить этот файл PCL-1.8- linux.deb,

И запустите этот код:

sudo dpkg -i PCL-1.8-linux.deb.
person Tree Lee    schedule 30.09.2017