我收到一些这样的错误:
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
for ::
,C1ERK
我猜是对构造函数的某种传递引用。
我猜它在抱怨它缺少我的一个构造函数class Rational
,例如Rational::Rational(RubyObject const&)
. Rational
但是,它是一个模板,因此有助于我了解缺少哪个版本。
但这里的问题实际上是我如何手动解开。=)