Я получаю некоторые ошибки, как это:
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++filtjs, я получаю сообщение "Не искаженный символ C++».
Я немного озадачен сообщением об ошибке, так как пример c++filtjs
дает _ZN9wikipedia7article8wikilinkC1ERKSs
, который представляет wikipedia::article::wikilink::wikilink(std::string const&)
. Я вижу несколько шаблонов, среди них ZN#
, 7
и 8
для ::
и C1ERK
для того, что, как я предполагаю, является своего рода передачей по ссылке конструктору.
Я предполагаю, что он жалуется на отсутствие одного из моих конструкторов для class Rational
, например Rational::Rational(RubyObject const&)
. Однако Rational
— это шаблон, поэтому мне было бы полезно понять, какая версия отсутствует.
Но вопрос здесь действительно в том, как я могу разобрать вручную. =)
_
в начале искаженного имени. - person Shafik Yaghmour   schedule 14.08.2013nm::Complex::Complex(nm::RubyObject const&)
— первый,nm::Rational::Rational(nm::RubyObject const&)
— второй. Вы должны удалить первые_
из искаженного имени. - person Rapptz   schedule 14.08.2013Rational<int>
, но как мне явно скомпилировать конкретный конструктор класса шаблона? - person Juno Woods   schedule 14.08.2013c++filt -t -n
, чтобы не игнорировать_
, может привести к путанице в именах. - person greatwolf   schedule 14.08.2013