当我尝试编译affdex sdk sample applications
时遇到以下错误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
答案 0 :(得分:11)
我最初的怀疑是,问题是尝试使用较新的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引入了new implementations of std::string and std::list。您可以尝试使用变通方法here来查看是否可以成功完成链接过程,但最安全的选择是回退到使用GCC 4.8。
注意,可以从ubuntu repos中检索GCC 4.8 ..