Я хочу добавить новую библиотеку C++ cpd (https://github.com/gadomski/cpd) в один проект в ROS. Я уже установил библиотеку cpd в своей ОС Ubuntu.C++: Неопределенная ссылка на ERROR
Теперь я хочу использовать его в среде ROS.
В файле CMakeList.txt, я уже добавил линию
find_package(CPD REQUIRED)
include_directories(include
${catkin_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIR}
${PCL_INCLUDE_DIRS}
${CPD_INCLUDE_DIRS}
)
target_link_libraries(background_removal
${catkin_LIBRARIES}
${OpenCV_LIBRARIES}
${PCL_LIBRARIES}
${CPD_LIBRARIES}
)
затем в исходном коде я добавил
#include <cpd/nonrigid_lowrank.hpp>
, а также пример кода
cpd::NonrigidLowrank reg;
cpd::Registration::ResultPtr result = reg.run(X, Y);
Но после его компиляции он выдает ошибку: неопределенная ссылка на `cpd :: NonrigidLowrank :: NonrigidLowrank() '
Ошибка: неопределенная ссылка на `CPD :: Регистрация :: бега (арма :: Mat Const &, арма :: Mat Const &) Const»
Я полагаю, что библиотека ППР не связана с РОС , Я сделал что-то неправильно, чтобы вызвать библиотеку cpd?
эй, ТНХ для вашего ответа. Я сделал добавить target_link_libraries в моем файле CMakeList target_link_libraries (background_removal $ {catkin_LIBRARIES} $ {OpenCV_LIBRARIES} $ {PCL_LIBRARIES} $ {CPD_LIBRARIES} ) Но это не сработало, без использования ДСП, Я могу успешно запустить его с помощью OpenCV, PCL. – ZYJ
Ну, обычный материал: 'message (" CPD_LIBARIES: $ {CPD_LIBRARIES} ")', 'grep' для сообщений с отсутствующими символами в этих библиотеках ... недостаточно информации здесь, чтобы дать более точные советы. – DevSolar
Вы правы, в символе нет значения, оно пустое. поэтому он фактически не находит cpd libary ... – ZYJ