2017-01-11 6 views
0

У меня возникли проблемы с работой интерфейса QHull C++, работающего в проекте catkin. Мой проект компилируется отлично, и я указал библиотеку, которая будет использоваться компоновщиком, однако она не может ссылаться на следующие сообщения об ошибках.Невозможность связать интерфейс Qhull C++ в проекте ROS 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. поэтому общий объект в нем не содержит символов.

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

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

+0

Это проблема связывания, было бы полезно, если бы вы опубликовали файл проекта проекта CMakeLists? – Vtik

ответ

0

Я использую 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.

Возможно, это помогает кому-то.

Смежные вопросы