Ошибка связывания интерфейса Qhull C ++ в проекте ROS catkin

У меня возникли проблемы с работой интерфейса QHull C ++ в проекте catkin. Мой проект компилируется нормально, и я указал библиотеку, которая будет использоваться компоновщиком, однако он не может связать со следующими сообщениями об ошибках.

CMakeFiles/path_to/my_code.cpp.o: In function `main':
my_code.cpp:(.text+0x17ab): undefined reference to `orgQhull::RboxPoints::RboxPoints()'
my_code.cpp:(.text+0x182a): undefined reference to `orgQhull::PointCoordinates::appendPoints(std::istream&)'
my_code.cpp:(.text+0x1839): undefined reference to `orgQhull::Qhull::Qhull()'
my_code.cpp:(.text+0x1857): undefined reference to `orgQhull::Qhull::runQhull(orgQhull::RboxPoints const&, char const*)'
my_code.cpp:(.text+0x18aa): undefined reference to `orgQhull::Qhull::outputQhull(char const*)'
my_code.cpp:(.text+0x19d0): undefined reference to `orgQhull::Qhull::~Qhull()'
my_code.cpp:(.text+0x19ee): undefined reference to `orgQhull::RboxPoints::~RboxPoints()'
my_code.cpp:(.text+0x1c10): undefined reference to `orgQhull::Qhull::~Qhull()'
my_code.cpp:(.text+0x1c38): undefined reference to `orgQhull::RboxPoints::~RboxPoints()'
CMakeFiles/build_path/my_code.cpp.o: In function `orgQhull::Qhull::setOutputStream(std::ostream*)':

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

  • libqhull-DEV
  • libqhull-документ
  • libqhull7
  • Qhull-Бен

Я не знаю, связано ли это с проблемой, но, глядя на общий объект libqhull.so, в нем нет символов.

####:/usr/lib/x86_64-linux-gnu$ nm -g libqhull.so
nm: libqhull.so: no symbols

У кого-нибудь есть опыт, чтобы заставить это работать на Linux? Любая помощь будет оценена.

2

Решение

Я использую ROS Indigo, это работает для меня:

SET(qhullDir path_to_qhull_code)
INCLUDE_DIRECTORIES(${qhullDir}/src/libqhullcpp)
INCLUDE_DIRECTORIES(${qhullDir}/src)
LINK_DIRECTORIES(${qhullDir}/build)

INCLUDE_DIRECTORIES(${qhullDir}/src/libqhullcpp)
INCLUDE_DIRECTORIES(include)

SET(qhullLibs qhullcpp qhull_r)
add_library(${PROJECT_NAME}_library
src/myClass.cpp)

add_executable(libExample
src/myrunnable.cpp)
target_link_libraries(libExample
${PROJECT_NAME}_library ${qhullLibs})
SET_TARGET_PROPERTIES(libExample PROPERTIES
COMPILE_DEFINITIONS "qh_QHpointer")

Я собираю qhull из исходного кода с помощью cmake.

Может быть, это кому-то помогает.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]