C++ (GStreamer)如何让Taglib和核心音频实用程序类一起工作?

C++ (GStreamer)如何让Taglib和核心音频实用程序类一起工作?,c++,ios,gstreamer,taglib,C++,Ios,Gstreamer,Taglib,我需要为我的应用程序添加标记,但每次我将文件添加到我的项目时,标记库都会失控。它们都是C++,我认为可能会导致与Obj-C混合的问题,但是即使当我只添加文件而不将它们链接到任何地方时,都会得到相同的编译错误。 你知道可能是什么问题吗?我如何调试这个 以下是一些链接器错误: Undefined symbols for architecture x86_64: "std::basic_string<wchar_t, std::char_traits<wchar_t>, std:

我需要为我的应用程序添加标记,但每次我将文件添加到我的项目时,标记库都会失控。它们都是C++,我认为可能会导致与Obj-C混合的问题,但是即使当我只添加文件而不将它们链接到任何地方时,都会得到相同的编译错误。 你知道可能是什么问题吗?我如何调试这个

以下是一些链接器错误:

Undefined symbols for architecture x86_64:
  "std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::find(wchar_t const*, unsigned long, unsigned long) const", referenced from:
      TagLib::String::find(TagLib::String const&, int) const in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
  "std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::rfind(wchar_t const*, unsigned long, unsigned long) const", referenced from:
      TagLib::String::rfind(TagLib::String const&, int) const in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
  "std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_leak_hard()", referenced from:
      TagLib::String::String(std::string const&, TagLib::String::Type) in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::prepare(TagLib::String::Type) in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::String(std::string const&, TagLib::String::Type) in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::String(char const*, TagLib::String::Type) in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::String(TagLib::ByteVector const&, TagLib::String::Type) in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::to8Bit(bool) const in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::begin() in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      ...
  "std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_destroy(std::allocator<wchar_t> const&)", referenced from:
      TagLib::String::~String() in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::String(wchar_t const*, TagLib::String::Type) in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::~String() in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::~String() in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::startsWith(TagLib::String const&) const in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::substr(unsigned int, unsigned int) const in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
      TagLib::String::upper() const in GStreamer(libtag_a_x86_64_-tstring.cpp.o)
  "std::ios_base::Init::Init()", referenced from:
      __GLOBAL__I_a in GStreamer(libgsttaglib_a_x86_64_-libgsttaglib_la-gstapev2mux.o)
      __GLOBAL__I_a in GStreamer(libgsttaglib_a_x86_64_-libgsttaglib_la-gstid3v2mux.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-tbytevector.cpp.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-tstringlist.cpp.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-apetag.cpp.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-id3v2framefactory.cpp.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-commentsframe.cpp.o)
      ...
  "std::ios_base::Init::~Init()", referenced from:
      __GLOBAL__I_a in GStreamer(libgsttaglib_a_x86_64_-libgsttaglib_la-gstapev2mux.o)
      __GLOBAL__I_a in GStreamer(libgsttaglib_a_x86_64_-libgsttaglib_la-gstid3v2mux.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-tbytevector.cpp.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-tstringlist.cpp.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-apetag.cpp.o)
      __GLOBAL__I_a in GStreamer(libtag_a_x86_64_-id3v2framefactory.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
架构x86_64的未定义符号: “std::basic_string::find(wchar_t const*,无符号长,无符号长)const”,引用自: TagLib::String::find(TagLib::String const&,int)const在GStreamer中(libtag_a_x86_64_-tstring.cpp.o) “std::basic_string::rfind(wchar_t const*,无符号长,无符号长)const”,引用自: GStreamer中的TagLib::String::rfind(TagLib::String const&,int)const(libtag_a_x86_64_-tstring.cpp.o) “std::basic_string::_M_leak_hard()”,引用自: GStreamer(libtag_a_x86_64_-tstring.cpp.o)中的TagLib::String::String(std::String const&,TagLib::String::Type) GStreamer(libtag_a_x86_64_-tstring.cpp.o)中的TagLib::String::prepare(TagLib::String::Type) GStreamer(libtag_a_x86_64_-tstring.cpp.o)中的TagLib::String::String(std::String const&,TagLib::String::Type) GStreamer(libtag_a_x86_64_-tstring.cpp.o)中的TagLib::String::String(char const*,TagLib::String::Type) GStreamer(libtag_a_x86_64_-tstring.cpp.o)中的TagLib::String::String(TagLib::ByteVector const&,TagLib::String::Type) TagLib::String::GStreamer中的to8Bit(bool)常量(libtag_a_x86_64_-tstring.cpp.o) GStreamer中的TagLib::String::begin()(libtag_a_x86_64_-tstring.cpp.o) ... “std::basic_string::_Rep::_M_destroy(std::allocator const&)”,引用自: GStreamer中的TagLib::String::~String()(libtag_a_x86_64_-tstring.cpp.o) GStreamer(libtag\u a\u x86\u 64\u-tstring.cpp.o)中的TagLib::String::String(wchar\u t const*,TagLib::String::Type) GStreamer中的TagLib::String::~String()(libtag_a_x86_64_-tstring.cpp.o) GStreamer中的TagLib::String::~String()(libtag_a_x86_64_-tstring.cpp.o) GStreamer(libtag_a_x86_64_-tstring.cpp.o)中的TagLib::String::startsWith(TagLib::String const&)const TagLib::String::GStreamer中的substr(unsigned int,unsigned int)常量(libtag_a_x86_64_-tstring.cpp.o) GStreamer中的TagLib::String::upper()常量(libtag_a_x86_64_-tstring.cpp.o) “std::ios_base::Init::Init()”,引用自: __GStreamer中的全局文件(libgsttaglib文件a文件x86文件64文件-libgsttaglib文件la-gstapev2mux.o) __GStreamer中的全局函数(libgsttaglib\u a\u x86\u 64-libgsttaglib\u la-gstid3v2mux.o) __GStreamer(libtag_a_x86_64_-tbytevector.cpp.o)中的全局_I_a __GStreamer中的GLOBAL(libtag_a_x86_64_-tstringlist.cpp.o) __GStreamer中的全局搜索(libtag\u a\u x86\u 64\u-apetag.cpp.o) __GStreamer中的全局函数(libtag_a_x86_64_-id3v2framefactory.cpp.o) __GStreamer中的全局注释(libtag\u a\u x86\u 64-commentsframe.cpp.o) ... “std::ios_base::Init::~Init()”,引用自: __GStreamer中的全局文件(libgsttaglib文件a文件x86文件64文件-libgsttaglib文件la-gstapev2mux.o) __GStreamer中的全局函数(libgsttaglib\u a\u x86\u 64-libgsttaglib\u la-gstid3v2mux.o) __GStreamer(libtag_a_x86_64_-tbytevector.cpp.o)中的全局_I_a __GStreamer中的GLOBAL(libtag_a_x86_64_-tstringlist.cpp.o) __GStreamer中的全局搜索(libtag\u a\u x86\u 64\u-apetag.cpp.o) __GStreamer中的全局函数(libtag_a_x86_64_-id3v2framefactory.cpp.o) ld:找不到架构x86_64的符号 叮当声:错误:链接器命令失败,退出代码为1(使用-v查看调用) 在中找到了我的答案。只需要在构建设置中将C++标准库切换到LIbSTDC++ ++。现在效果很好