Неопределенная ссылка на процесс (std:: cxx11::basic string...) при компиляции примеров приложений affdex linux
я столкнулся со следующей ошибкой, когда пытался скомпилировать примеры приложений affdex sdk
Linking CXX executable video-demo
CMakeFiles/video-demo.dir/video-demo.cpp.o: In function 'main':
video-demo.cpp:(.text+0x11cb): undefined reference to
affdex::VideoDetector::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
collect2: error: ld returned 1 exit status
Я использую GCC 5.2.1
1 ответов
мое первоначальное подозрение состояло в том, что проблема заключается в попытке скомпилировать приложения с помощью более нового GCC или, скорее, GLIBCXX, чем то, с чем скомпилирован sdk (gcc v4.8).
ошибка msg относится к неопределенной функции, которую компилятор не может найти ..
undefined reference to `affdex::VideoDetector::process(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
проблема здесь заключается в определении типа параметра (std:: string) .. компилятор ищет:
std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
но, фактический тип определения параметра в скомпилированная библиотека..
std::basic_string<char, std::char_traits<char>, std::allocator<char> >
как оказалось, GCC 5 представил новые реализации std:: string и std::list. Вы можете попробовать обходной путь здесь чтобы увидеть, можете ли вы успешно завершить процесс связывания, но самый безопасный вариант-вернуться к использованию GCC 4.8.
Примечание, GCC 4.8 можно получить из репозиториев ubuntu ..