当前位置: 首页 > 面试题库 >

编译affdex linux示例应用程序时未定义对process(std :: __ cxx11 :: basic_string…)的引用

傅丁雷
2023-03-14
问题内容

当我尝试编译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的新实现
。您可以在此处尝试解决方法,以查看是否可以成功完成链接过程,但是最安全的选择是使用GCC 4.8。

请注意,可以从ubuntu repos ..检索GCC 4.8。



 类似资料:
  • 我很想知道为什么下面代码中的第二个不起作用。似乎即使数组是对的引用,数组的大小也嵌入在类型中,因此它应该在编译时可用。

  • 我正在尝试创建一个基本的应用程序,它是建模“粘滞便笺”活动。这将包含添加注释和删除注释的函数。下面是代码。在deleteNote函数中,我正在使用std::find方法在Notes的向量中查找标题,该向量是作为输入参数给出的。std::find API抛出编译错误。下面是代码。 下面是错误。 文件中包含的文件为/usr/include/c++/5/bits/stl_algoBase.h:71:0,

  • 我正在尝试使用AassetManager从android apk访问资产。然而,尽管我已经包含了asset_manager.h和asset_manager_jni.h,但我仍然得到了“对aassetmanager_fromjava的未定义引用”。其他来自asset_manager.h的函数,如AAssetManager_openDir(mgr,"“)等也不能被引用。 以下是完整的代码 这段代码在一

  • 错误:未定义对'pthread_cancel'的引用

  • 我是的新手,我正在尝试使用在eclipse上构建一个应用程序,我遵循了一个教程,并且做了完全相同的操作,该应用程序非常简单,当我试图编译它时,我得到了一堆我甚至不理解的错误: 你能告诉我我错过了什么吗。

  • 问题内容: 我正在使用Linux,并且具有以下文件: 该函数在中声明和定义。我需要在中使用该函数,因此我将该函数声明为 在。 但是,在编译过程中,我得到了错误 怎么了? 谢谢。 预计到达时间:多亏了我收到的答案,我现在有了以下内容: 在fileA.h中,我有 在fileA.c中,我有 在fileB.h中,我有 在fileB.cpp中,我有 但是,我现在有错误 问题答案: 如果您确实是使用C而不是C