У меня проблема с PCL: в частности, я хочу использовать его в существующем проекте с существующими файлами Makefile. Однако PCL использует CMake, и я не смог найти, как добавить его напрямую в Makefile. Кто-нибудь знает как это сделать?
Добавление PCL (библиотека облаков точек) в существующий проект с помощью Makefiles
Ответы (1)
Сначала попробуйте скомпилировать один из примеров, представленных на веб-сайте PCL, с помощью CMake. http://pointclouds.org/documentation/tutorials/pcl_visualizer.php
После компиляции приведенного выше примера вы найдете различные новые файлы и папку, созданную CMake, в своем каталоге.
Перейдите в CMakeFiles/pcl_visualizer_demo.dir/. Откройте файл с именем link.txt, который содержит команду терминала, которая имеет различные pcl (библиотеки облаков точек), динамически связанные с файлом.
команда должна выглядеть аналогично команде, показанной ниже
/usr/bin/c++ -O3 -Wno-deprecated -s CMakeFiles/pcl_visualizer_demo.dir -o pcl_visualizer_demo -rdynamic -lpcl_common -Wl,-Bstatic -lflann_cpp_s -Wl,-Bdynamic -lpcl_kdtree -lpcl_octree -lpcl_search -lqhull -lpcl_surface -lpcl_sample_consensus -lpcl_io -lpcl_filters -lpcl_features -lpcl_keypoints -lpcl_registration -lpcl_segmentation -lpcl_recognition -lpcl_visualization -lpcl_people -lpcl_outofcore -lpcl_tracking /usr/lib/libvtkGenericFiltering.so.5.8.0 /usr/lib/libvtkGeovis.so.5.8.0 /usr/lib/libvtkCharts.so.5.8.0 /usr/lib/libvtkViews.so.5.8.0 /usr/lib/libvtkInfovis.so.5.8.0 /usr/lib/libvtkWidgets.so.5.8.0
Вы можете включить эти библиотеки напрямую в ваш Makefile.
Если вы используете другие функции или файлы заголовков pcl, то сначала попробуйте скомпилировать его с помощью CMake, связать библиотеки и добавить их в свой Makefile предыдущего проекта.
Я попробовал этот метод для своего проекта, который работал отлично. Я попытался pkg-config
связать библиотеки, но в моем случае это не сработало. Я не смог найти никакого другого метода, который бы легко связывал все необходимые библиотеки.
make
не имеет эквивалента этой конструкции. Вот для чего нужны автоинструменты. Нужно ли вам что-то подобное, зависит от того, как устанавливается PCL (хотя, если предположить, что это там, вам, вероятно, это нужно). Устанавливает ли PCL файлpkg-config
.pc
? - person Etan Reisner   schedule 09.09.2015pkg-config --list-all | less
и найдите PCL/pcl/и т. д.? Он также может быть не в стандартном месте. Но я думаю, что это в основном то, что cmake использует для поиска библиотек, поэтому, надеюсь, он работает правильно. - person Etan Reisner   schedule 09.09.2015pkg-config --libs pcl_registration-1.7
,pkg-config --cflags pcl_registration-1.7
и т. д. к флагам компиляции и компоновщика вашего make-файла. То, как вы сделаете это в вашем make-файле, зависит от содержимого вашего make-файла. - person Etan Reisner   schedule 09.09.2015