GTK+-2.24.10の-Wstrict-prototypes対策
今更だが、GTK+-2.24.10においてgtk/gtk.hをインクルードしたソースを、
gccに-Wstrict-prototypesオプションを付けてコンパイルした場合、
...snip In file included from /.../gtk.h:234:0, from foo.c:1: /.../gtk/gtkitemfactory.h:47:1: error: function declaration isn't a prototype [-Werror=strict-prototypes] cc1: all warnings being treated as errors
の警告が出るので修正パッチ。
上のメッセージが警告でなくエラーになっているのは最後の行から分かるように-Werrorオプションも付いてるので。
--- /.../gtk/gtkitemfactory.h 2012-02-09 05:35:00 +0900 +++ /.../gtk/gtkitemfactory.h 2012-04-08 18:39:54 +0900 @@ -44,7 +44,7 @@ * (Note that if we are included from a C++ program () will mean * (void) so an explicit cast will be needed.) */ -typedef void (*GtkItemFactoryCallback) (); +typedef void (*GtkItemFactoryCallback) (void); typedef void (*GtkItemFactoryCallback1) (gpointer callback_data, guint callback_action, GtkWidget *widget);
GtkItemFactoryCallbackの定義において引数タイプのvoidが抜けてる。