yasuy****@javao*****
yasuy****@javao*****
2004年 6月 23日 (水) 21:57:17 JST
えんどうです。
> はい。誰かがh2stub.scmをgdk-pixbufにあててみたら通った、みたいな
> ことを言ってた覚えがあるので、そんなに難しくないと思います。
> せっかくの機会ですからやってしまいましょうか。
gdk-pixbuf-animation.h
gdk-pixbuf-enum-types.h
gdk-pixbuf-features.h
gdk-pixbuf-io.h
gdk-pixbuf-loader.h
gdk-pixbuf-marshal.h
gdk-pixbuf.h
gdk-pixdata.h
という内容で src/GDKPIXBUFFILES を作り、h2stub.scm に、
(define (parse-gdk-pixbuf)
(parse-headers #`",(gtk-directory)/gdk-pixbuf"
(call-with-input-file "GDKPIXBUFFILES" port->string-list)))
などと定義し、
(define (run-through)
のなかに
(parse-gdk-pixbuf)
を加えてみました。
src ディレクトリーで
$ gosh h2stub.scm
を実行し、./configure ; make してみたところ、
In file included from gauche-gtk.h:285,
from gauche-gtk.c:18:
gtk-lib.h:1050: error: 構文解析エラー before "GdkPixbufModulePattern"
gtk-lib.h:1050: 警告: struct や union の最後にセミコロンがありません
gtk-lib.h:1051: 警告: data definition has no type or storage class
gtk-lib.h:1059: error: 構文解析エラー before '*' token
gtk-lib.h:1063: error: 構文解析エラー before "GdkPixbufModule"
gtk-lib.h:1063: 警告: struct や union の最後にセミコロンがありません
gtk-lib.h:1064: 警告: data definition has no type or storage class
gtk-lib.h:1072: error: 構文解析エラー before '*' token
gtk-lib.h:1076: error: field `data' has incomplete type
gtk-lib.h:1102: error: 構文解析エラー before "GdkPixdata"
gtk-lib.h:1102: 警告: struct や union の最後にセミコロンがありません
gtk-lib.h:1103: 警告: data definition has no type or storage class
gtk-lib.h:1111: error: 構文解析エラー before '*' token
make: *** [gauche-gtk.o] エラー 1
yasuyuki @ juliet:~/src/Gauche-gtk-0.4.1_pre1/src$ less gtk-lib.h
yasuyuki @ juliet:~/src/Gauche-gtk-0.4.1_pre1/src$ cat -n gtk-lib.h | grep 1111
1111 extern ScmObj Scm_MakeGdkPixdata(GdkPixdata *data);
yasuyuki @ juliet:~/src/Gauche-gtk-0.4.1_pre1/src$ grep GdkPixdata gtk-lib.h
typedef struct ScmGdkPixdataRec {
GdkPixdata data;
} ScmGdkPixdata;
SCM_CLASS_DECL(Scm_GdkPixdataClass);
#define SCM_CLASS_GDK_PIXDATA (&Scm_GdkPixdataClass)
#define SCM_GDK_PIXDATA(obj) (SCM_FALSEP(obj)?NULL:&((ScmGdkPixdata*)(obj)) ->data)
#define SCM_MAKE_GDK_PIXDATA(obj) (Scm_MakeGdkPixdata(obj))
extern ScmObj Scm_MakeGdkPixdata(GdkPixdata *data);
yasuyuki @ juliet:~/src/Gauche-gtk-0.4.1_pre1/src$ less gtk-lib.h
yasuyuki @ juliet:~/src/Gauche-gtk-0.4.1_pre1/src$ cat -n gtk-lib.h | grep 1111
1111 extern ScmObj Scm_MakeGdkPixdata(GdkPixdata *data);
というエラーが発生しています。src/gtk-lib.h では以下のようになっていました。
1046 /* gdk-pixbuf-io.h */
1047
1048 typedef struct ScmGdkPixbufModulePatternRec {
1049 SCM_HEADER;
1050 GdkPixbufModulePattern data;
1051 } ScmGdkPixbufModulePattern;
1052
1053 SCM_CLASS_DECL(Scm_GdkPixbufModulePatternClass);
1054 #define SCM_CLASS_GDK_PIXBUF_MODULE_PATTERN (&Scm_GdkPixbufModulePatternClass)
1055 #define SCM_GDK_PIXBUF_MODULE_PATTERN_P(obj) SCM_XTYPEP(obj, SCM_CLASS_GDK_PIXBUF_MODULE_PATTERN)
1056 #define SCM_GDK_PIXBUF_MODULE_PATTERN(obj) (SCM_FALSEP(obj)?NULL:&((ScmGdkPixbufModulePattern*)(obj))->data)
1057 #define SCM_MAKE_GDK_PIXBUF_MODULE_PATTERN(obj) (Scm_MakeGdkPixbufModulePattern(obj))
1058 #define SCM_GDK_PIXBUF_MODULE_PATTERN_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXBUF_MODULE_PATTERN_P(obj))
1059 extern ScmObj Scm_MakeGdkPixbufModulePattern(GdkPixbufModulePattern *data);
1060
1061 typedef struct ScmGdkPixbufModuleRec {
1062 SCM_HEADER;
1063 GdkPixbufModule data;
1064 } ScmGdkPixbufModule;
1065
1066 SCM_CLASS_DECL(Scm_GdkPixbufModuleClass);
1067 #define SCM_CLASS_GDK_PIXBUF_MODULE (&Scm_GdkPixbufModuleClass)
1068 #define SCM_GDK_PIXBUF_MODULE_P(obj) SCM_XTYPEP(obj, SCM_CLASS_GDK_PIXBUF_MODULE)
1069 #define SCM_GDK_PIXBUF_MODULE(obj) (SCM_FALSEP(obj)?NULL:&((ScmGdkPixbufModule*)(obj))->data)
1070 #define SCM_MAKE_GDK_PIXBUF_MODULE(obj) (Scm_MakeGdkPixbufModule(obj))
1071 #define SCM_GDK_PIXBUF_MODULE_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXBUF_MODULE_P(obj))
1072 extern ScmObj Scm_MakeGdkPixbufModule(GdkPixbufModule *data);
1073
1074 typedef struct ScmGdkPixbufFormatRec {
1075 SCM_HEADER;
1076 GdkPixbufFormat data;
1077 } ScmGdkPixbufFormat;
1078
(略)
1096 /* gdk-pixbuf.h */
1097
1098 /* gdk-pixdata.h */
1099
1100 typedef struct ScmGdkPixdataRec {
1101 SCM_HEADER;
1102 GdkPixdata data;
1103 } ScmGdkPixdata;
1104
1105 SCM_CLASS_DECL(Scm_GdkPixdataClass);
1106 #define SCM_CLASS_GDK_PIXDATA (&Scm_GdkPixdataClass)
1107 #define SCM_GDK_PIXDATA_P(obj) SCM_XTYPEP(obj, SCM_CLASS_GDK_PIXDATA)
1108 #define SCM_GDK_PIXDATA(obj) (SCM_FALSEP(obj)?NULL:&((ScmGdkPixdata*)(obj))->data)
1109 #define SCM_MAKE_GDK_PIXDATA(obj) (Scm_MakeGdkPixdata(obj))
1110 #define SCM_GDK_PIXDATA_OR_NULL_P(obj) (SCM_FALSEP(obj)||SCM_GDK_PIXDATA_P(obj))
1111 extern ScmObj Scm_MakeGdkPixdata(GdkPixdata *data);
1112
--
ENDO Yasuyuki <yasuy****@javao*****>
http://www.javaopen.org/~yasuyuki/ (Personal/Japanese Only)
http://www.javaopen.org/jfriends/ (Japanese Only)