3

次のようなエラーが発生します。

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#、for 、および7forは、コンストラクターへの参照渡しのようなものだと推測しています。8::C1ERK

class Rationalなどの のコンストラクターの 1 つが欠落していると不平を言っていると思いRational::Rational(RubyObject const&)ます。Rationalただし、 はテンプレートであるため、どのバージョンが欠落しているかを理解するのに役立ちます。

しかし、ここで問題になるのは、どうすれば手でデマングルできるかということです。=)

4

1 に答える 1