Я получаю некоторые ошибки, как это:
dyld: lazy symbol binding failed: Symbol not found: __ZN2nm8RationalIxEC1ERKNS_10RubyObjectE
Referenced from: /Users/jwoods/Projects/nmatrix/lib/nmatrix.bundle
Expected in: flat namespace
dyld: Symbol not found: __ZN2nm8RationalIxEC1ERKNS_10RubyObjectE
Referenced from: /Users/jwoods/Projects/nmatrix/lib/nmatrix.bundle
Expected in: flat namespace
и то же самое для __ZN2nm7ComplexIfEC1ERKNS_10RubyObjectE
,
К несчастью, c++filt
кажется, не хочет разобраться с этим. Когда я пытаюсь ввести их в C ++ FilterJS онлайн интерфейс, Я получаю «Не искаженный символ C ++».
Я немного озадачен сообщением об ошибке, так как пример c++filtjs
дает это _ZN9wikipedia7article8wikilinkC1ERKSs
, который представляет wikipedia::article::wikilink::wikilink(std::string const&)
, Я вижу несколько моделей, среди них ZN#
, 7
а также 8
за ::
, а также C1ERK
потому что я предполагаю, что это некая ссылка на конструктор.
Я предполагаю, что жалуется, что отсутствует один из моих конструкторов для class Rational
, такие как Rational::Rational(RubyObject const&)
, Rational
Это шаблон, поэтому мне было бы полезно понять, какая версия отсутствует.
Но вопрос здесь действительно в том, как я могу разобрать руками. знак равно
Символ выглядит как один из произведенных Clang или GCC. Оба эти компилятора используют ABI, основанный на Itanium ABI. Этот документ включает в себя раздел по разборке описывающий, как строятся внешние символы. Если вы усвоите соответствующие правила, вы сможете разобрать имена.
Я не смог найти документ на оригинальном сайте и не знаю, где живет официальный документ.
Других решений пока нет …