mkvtoolnix版本在Mac OS 10.8上使用“未定义的体系结构x86_64符号”失败

时间:2012-09-30 14:33:27

标签: macos gcc ld

我正在尝试从Mountain Lion(Mac OS 10.8)的源代码编译mkvtoolnix。我相信所有先决条件都已安装,因为./configure有效。不过我确实需要更改我的./configure命令行:

./configure ZLIB_CFLAGS="-l/usr/lib/libz.dylib" ZLIB_LIBS="-L/usr/lib" \
CURL_CFLAGS="-l/usr/lib/libcurl.dylib" CURL_LIBS="-L/usr/lib"

然后我运行rake并编译所有内容直到最后,我收到此消息:

LINK src/mkvmerge

Undefined symbols for architecture x86_64:
  "libmatroska::KaxCueDuration::ClassInfos", referenced from:
      cluster_helper_c::postprocess_cues()       in libmtxmerge.a(cluster_helper.o)
  "libmatroska::KaxCueRelativePosition::ClassInfos", referenced from:
      cluster_helper_c::postprocess_cues()       in libmtxmerge.a(cluster_helper.o)
  "libebml::EbmlString::SetValue(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      void FixMandatoryElement<libmatroska::KaxTagName, libmatroska::KaxTagLangue, libmatroska::KaxTagDefault>(libebml::EbmlMaster*) in libmtxcommon.a(tags.o)
      mtx::xml::ebml_converter_c::parse_string(mtx::xml::ebml_converter_c::parser_context_t&) in libmtxcommon.a(ebml_converter.o)
      mtx::xml::ebml_chapters_converter_c::fix_display(libmatroska::KaxChapterDisplay&) const   in libmtxcommon.a(ebml_chapters_converter.o)
  "libebml::EbmlSInteger::SetValue(long long)", referenced from:
      kax_reference_block_c::UpdateSize(bool, bool) in libmtxmerge.a(libmatroska_extensions.o)
      mtx::xml::ebml_converter_c::parse_int(mtx::xml::ebml_converter_c::parser_context_t&) in libmtxcommon.a(ebml_converter.o)
  "libebml::EbmlUInteger::SetValue(unsigned long long)", referenced from:
      adjust_chapter_timecodes(libebml::EbmlMaster&, long long) in libmtxcommon.a(chapters.o)
      remove_entries(long long, long long, long long, libebml::EbmlMaster&) in libmtxcommon.a(chapters.o)
      cluster_helper_c::postprocess_cues()       in libmtxmerge.a(cluster_helper.o)
      fix_mandatory_tag_elements(libebml::EbmlElement*)       in libmtxcommon.a(tags.o)
      void FixMandatoryElement<libmatroska::KaxTagName, libmatroska::KaxTagLangue, libmatroska::KaxTagDefault>(libebml::EbmlMaster*) in libmtxcommon.a(tags.o)
      mtx::xml::ebml_chapters_converter_c::fix_atom(libmatroska::KaxChapterAtom&) const  in libmtxcommon.a(ebml_chapters_converter.o)
      mtx::xml::ebml_chapters_converter_c::fix_edition_entry(libmatroska::KaxEditionEntry&) const   in libmtxcommon.a(ebml_chapters_converter.o)
      ...
  "libebml::EbmlUnicodeString::SetValueUTF8(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      set_simple_tag_name(libmatroska::KaxTagSimple&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libmtxcommon.a(tags.o)
      set_simple_tag_value(libmatroska::KaxTagSimple&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libmtxcommon.a(tags.o)
      set_simple_tag(libmatroska::KaxTagSimple&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libmtxcommon.a(tags.o)
      convert_old_tags(libmatroska::KaxTags&)       in libmtxcommon.a(tags.o)
      mtx::xml::ebml_converter_c::parse_ustring(mtx::xml::ebml_converter_c::parser_context_t&) in libmtxcommon.a(ebml_converter.o)
  "libebml::EbmlUnicodeString::SetValue(libebml::UTFstring const&)", referenced from:
      void FixMandatoryElement<libmatroska::KaxTagName, libmatroska::KaxTagLangue, libmatroska::KaxTagDefault>(libebml::EbmlMaster*) in libmtxcommon.a(tags.o)
  "libebml::EbmlString::GetValue() const", referenced from:
      kt_get_codec_id(libmatroska::KaxTrackEntry&)        in libmtxcommon.a(ebml.o)
      kt_get_language(libmatroska::KaxTrackEntry&)        in libmtxcommon.a(ebml.o)
      dump_ebml_elements(libebml::EbmlElement*, bool, unsigned int) in libmtxcommon.a(output.o)
      void FixMandatoryElement<libmatroska::KaxTagName, libmatroska::KaxTagLangue, libmatroska::KaxTagDefault>(libebml::EbmlMaster*) in libmtxcommon.a(tags.o)
      kax_reader_c::read_headers_tracks(mm_io_c*, libebml::EbmlElement*, long long) in libmtxinput.a(r_matroska.o)
      kax_reader_c::handle_attachments(mm_io_c*, libebml::EbmlElement*, long long) in libmtxinput.a(r_matroska.o)
      mtx::xml::ebml_converter_c::format_string(pugi::xml_node&, libebml::EbmlElement&)       in libmtxcommon.a(ebml_converter.o)
      ...
  "libebml::EbmlSInteger::GetValue() const", referenced from:
      dump_ebml_elements(libebml::EbmlElement*, bool, unsigned int) in libmtxcommon.a(output.o)
      kax_reader_c::process_block_group(libmatroska::KaxCluster*, libmatroska::KaxBlockGroup*)  in libmtxinput.a(r_matroska.o)
      mtx::xml::ebml_converter_c::format_int(pugi::xml_node&, libebml::EbmlElement&)       in libmtxcommon.a(ebml_converter.o)
  "libebml::EbmlUInteger::GetValue() const", referenced from:
      get_chapter_start(libmatroska::KaxChapterAtom&, long long) in libmtxcommon.a(chapters.o)
      get_chapter_end(libmatroska::KaxChapterAtom&, long long) in libmtxcommon.a(chapters.o)
      get_chapter_uid(libmatroska::KaxChapterAtom&)        in libmtxcommon.a(chapters.o)
      find_edition_with_uid(libmatroska::KaxChapters&, unsigned long long) in libmtxcommon.a(chapters.o)
      find_chapter_with_uid(libmatroska::KaxChapters&, unsigned long long) in libmtxcommon.a(chapters.o)
      move_chapters_by_edition(libmatroska::KaxChapters&, libmatroska::KaxChapters&) in libmtxcommon.a(chapters.o)
      adjust_chapter_timecodes(libebml::EbmlMaster&, long long) in libmtxcommon.a(chapters.o)
      ...
  "libebml::EbmlUnicodeString::GetValueUTF8() const", referenced from:
      dump_ebml_elements(libebml::EbmlElement*, bool, unsigned int) in libmtxcommon.a(output.o)
      get_simple_tag_value(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, libebml::EbmlMaster&) in libmtxcommon.a(tags.o)
      get_simple_tag_name(libmatroska::KaxTagSimple const&)   in libmtxcommon.a(tags.o)
      get_simple_tag_value(libmatroska::KaxTagSimple const&)   in libmtxcommon.a(tags.o)
      convert_old_tags(libmatroska::KaxTags&)       in libmtxcommon.a(tags.o)
      kax_reader_c::read_headers_info(libebml::EbmlElement*&, libebml::EbmlElement*&, int&) in libmtxinput.a(r_matroska.o)
      kax_reader_c::read_headers_info_writing_app(libmatroska::KaxWritingApp*&)          in libmtxinput.a(r_matroska.o)
      ...
  "libebml::EbmlUnicodeString::GetValue() const", referenced from:
      void FixMandatoryElement<libmatroska::KaxTagName, libmatroska::KaxTagLangue, libmatroska::KaxTagDefault>(libebml::EbmlMaster*) in libmtxcommon.a(tags.o)
      kax_reader_c::read_headers_info(libebml::EbmlElement*&, libebml::EbmlElement*&, int&) in libmtxinput.a(r_matroska.o)
      kax_reader_c::read_headers_tracks(mm_io_c*, libebml::EbmlElement*, long long) in libmtxinput.a(r_matroska.o)
      kax_reader_c::handle_attachments(mm_io_c*, libebml::EbmlElement*, long long) in libmtxinput.a(r_matroska.o)
  "libebml::EbmlFloat::GetValue() const", referenced from:
      kt_get_a_sfreq(libmatroska::KaxTrackEntry&)        in libmtxcommon.a(ebml.o)
      kt_get_a_osfreq(libmatroska::KaxTrackEntry&)        in libmtxcommon.a(ebml.o)
      dump_ebml_elements(libebml::EbmlElement*, bool, unsigned int) in libmtxcommon.a(output.o)
      kax_reader_c::read_headers_track_audio(kax_track_t*, libmatroska::KaxTrackAudio*)          in libmtxinput.a(r_matroska.o)
      kax_reader_c::read_headers_track_video(kax_track_t*, libmatroska::KaxTrackVideo*)          in libmtxinput.a(r_matroska.o)
      kax_reader_c::read_headers_info(libebml::EbmlElement*&, libebml::EbmlElement*&, int&) in libmtxinput.a(r_matroska.o)
  "std::ctype<char>::_M_widen_init() const", referenced from:
      __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::io::detail::skip_asterisk<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::ctype<char> >(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::ctype<char> const&) in mkvmerge.o
      bool boost::io::detail::parse_printf_directive<char, std::char_traits<char>, std::allocator<char>, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::ctype<char> >(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&, boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> >*, std::ctype<char> const&, unsigned long, unsigned char) in mkvmerge.o
      boost::io::detail::stream_format_state<char, std::char_traits<char> >::apply_on(std::basic_ios<char, std::char_traits<char> >&, std::locale*) const in mkvmerge.o
      void boost::io::detail::put<char, std::char_traits<char>, std::allocator<char>, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&>(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::string_type&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::internal_streambuf_t&, std::locale*) in mkvmerge.o
      void boost::io::detail::put<char, std::char_traits<char>, std::allocator<char>, unsigned int const&>(unsigned int const&, boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::string_type&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::internal_streambuf_t&, std::locale*) in mkvmerge.o
      void boost::io::detail::put<char, std::char_traits<char>, std::allocator<char>, char const*&>(char const*&, boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::string_type&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::internal_streambuf_t&, std::locale*) in mkvmerge.o
      void boost::io::detail::put<char, std::char_traits<char>, std::allocator<char>, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&>(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, boost::io::detail::format_item<char, std::char_traits<char>, std::allocator<char> > const&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::string_type&, boost::basic_format<char, std::char_traits<char>, std::allocator<char> >::internal_streambuf_t&, std::locale*) in mkvmerge.o
      ...
  "std::domain_error::~domain_error()", referenced from:
      boost::bad_rational::~bad_rational() in libmtxcommon.a(mpeg4_p10.o)
      boost::bad_rational::~bad_rational() in libmtxcommon.a(mpeg4_p10.o)
  "std::__detail::__prime_list", referenced from:
      __GLOBAL__sub_I_output_control.cpp in libmtxmerge.a(output_control.o)
      std::__detail::_Prime_rehash_policy::_M_next_bkt(unsigned long) const in libmtxmerge.a(pr_generic.o)
      std::__detail::_Prime_rehash_policy::_M_next_bkt(unsigned long) const in libmtxmerge.a(cluster_helper.o)
  "std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)", referenced from:
      qtmp4_reader_c::detect_interleaving()       in libmtxinput.a(r_qtmp4.o)
      M2VParser::AddTimecode(long long) in libmpegparser.a(M2VParser.o)
  "std::__detail::_List_node_base::_M_unhook()", referenced from:
      M2VParser::FlushWaitQueue()      in libmpegparser.a(M2VParser.o)
      M2VParser::StampFrame(MPEGFrame*)      in libmpegparser.a(M2VParser.o)
  "std::__throw_bad_function_call()", referenced from:
      at_scope_exit_c::~at_scope_exit_c() in mkvmerge.o
      bool parse_number<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >(boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, double&) in mkvmerge.o
      mxinfo(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libmtxcommon.a(output.o)
      mxinfo(std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) in libmtxcommon.a(output.o)
      mxwarn(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libmtxcommon.a(output.o)
      mxerror(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libmtxcommon.a(output.o)
      mxinfo(boost::basic_format<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&) in libmtxcommon.a(output.o)
      ...
  "_curl_easy_cleanup", referenced from:
      url_retriever_c::retrieve(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) in libmtxcommon.a(curl.o)
  "_curl_easy_init", referenced from:
      url_retriever_c::retrieve(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) in libmtxcommon.a(curl.o)
  "_curl_easy_perform", referenced from:
      url_retriever_c::retrieve(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) in libmtxcommon.a(curl.o)
  "_curl_easy_setopt", referenced from:
      url_retriever_c::retrieve(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) in libmtxcommon.a(curl.o)
  "_curl_global_init", referenced from:
      url_retriever_c::retrieve(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> >&) in libmtxcommon.a(curl.o)
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

不确定在这做什么。有什么建议吗?

0 个答案:

没有答案