Yoshiyuki Asaba
y-asa****@sra*****
2005年 4月 21日 (木) 00:38:57 JST
浅羽といいます。 途中までメールを書いていたのですが、自己解決したようなので一部について。 From: Makoto Satoh <makot****@yahoo*****> Subject: [Gauche-devel-jp] Re: undefined symbol ... Date: Thu, 21 Apr 2005 00:13:54 +0900 (JST) > $ nm -D gd.so | grep Scm_Gd > 00015320 D Scm_GdClass > U Scm_GdFontPtrClass > > ということで、前者はグローバルデータとして存在しているのに後者は > 未定義というのがおかしそうですね。 stub にある SCM_CLASS_DECL(Scm_GdFontPtrClass) というのは、gauche.h に よると #define SCM_CLASS_DECL(klass) extern ScmClass klass なので、Scm_GdFontPtrClass という変数はどこかにありますと宣言していま す。ここのエラーというのは、どこかにありますと宣言しているのですが、実 体はどこにもなかったのでエラーとなっていました。そこで実体を作るために は、gauche の stub で > (define-cclass <gdfont> "ScmGdFontPtr*" "Scm_GdFontPtrClass" () ()) を追加すれば、gauche.h にある SCM_DEFINE_BUILTIN_CLASS を使って実体を 作成してくれます。実際には SCM__DEFINE_CLASS_COMMON というマクロで変数 を作っています。 -- Yoshiyuki Asaba y-asa****@sra*****