【发布时间】:2015-05-03 04:36:09
【问题描述】:
我的应用程序需要Core Audio Utility Classes,但每次我将文件添加到我的项目 TagLib 时都会出现问题。它们都是 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)
【问题讨论】: