将mkvtoolnix-gui加载为“mkvtoolnix-gui:符号查找错误:mkvtoolnix-gui:undefined symbol”时出错

时间:2017-07-15 14:50:53

标签: c++ linux boost archlinux

这是我在启动mkvtoolnix-gui时遇到的错误:

  

MKVToolNix中的GUI:符号查找错误:MKVToolNix中的GUI:未定义的符号:_ZN5boost16re_detail_10640012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSJ_EENS_15regex_constants12_match_flagsE

enter image description here

1 个答案:

答案 0 :(得分:0)

通过c++filt运行装饰符号会显示:

$ echo _ZN5boost16re_detail_10640012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE14construct_initERKNS_11basic_regexIcSJ_EENS_15regex_constants12_match_flagsE | c++filt
boost::re_detail_106400::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)

我不是Boost家伙,但我猜你需要为Arch安装Boost.Regex。

这是他们在Ubuntu 16.04下调用的内容:

$ apt-cache search boost-regex
libboost-regex1.58.0 - regular expression library for C++
libboost-regex-dev - regular expression library for C++ (default version)
libboost-regex1.58-dev - regular expression library for C++

这是他们在Fedora 26下所称的内容:

$ dnf search boost-regex
Last metadata expiration check: 1 day, 12:41:53 ago on Fri 14 Jul 2017 03:00:18 AM EDT.
====================== Name Exactly Matched: boost-regex =======================
boost-regex.i686 : Run-time component of boost regular expression library
boost-regex.x86_64 : Run-time component of boost regular expression library

我无法弄清楚他们在Arch中的名字。 Pacman正在为以下内容返回0结果。也许它在extra/boost-libs 1.64.0-4

  • pacman -Ss boost-regex
  • pacman -Ss 'boost-regex*'
  • pacman -Ss boost | grep -i regex
  • pacman -Ss Boost | grep -i regex