コンパイルしようとしたときに次のエラーが発生しました 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を使用しています
私の最初の疑いは、問題は、sdkがコンパイルされたもの(gcc v4.8)よりも新しいGCCまたはGLIBCXXを使用してアプリをコンパイルしようとしていることでした。
エラー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の新しい実装 を導入しました。回避策 here を試して、リンクプロセスが正常に完了するかどうかを確認できますが、最も安全なオプションは、GCC 4.8の使用にフォールバックすることです。
GCC 4.8はubuntuリポジトリから取得できます。