質問: GTK2.0を使ったプログラムを組んでいるのですが、 ``` #include void destroy(GtkWidget *widget,gpointer data){ gtk_main_quit(); } int main(int argc,char *argv[]){ GtkWidget *window; GtkWidget *editor; gtk_init(&argc,&argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); editor=gtk_text_new(NULL,NULL); gtk_text_set_editable(GTK_TEXT(editor),TRUE); gtk_widget_show(window); gtk_signal_connect(GTK_OBJECT(window),"destroy",GTK_SIGNAL_FUNC(destroy),NULL); gtk_main(); return 0; } ``` このコードを実行すると > > main.c: 関数 ‘main’ 内: > > main.c:10:8: 警告: 代入で整数からキャスト無しにポインタを作成しています [デフォルトで有効] > > editor=gtk_text_new(NULL,NULL); > > ^ > > /tmp/ccrRGlkg.o: 関数 `main' 内: > main.c:(.text+0x6e):`GTK_TEXT' に対する定義されていない参照です > > collect2: エラー: ld はステータス 1 で終了しました > > > というエラーと警告が返ってきました。 gtk_text_newの返り値がGtkWidget型で無いということでしょうか?教えてくださいm(--)m
回答: * GtkText Description GtkTextはdeprecated(使用することを推奨していない仕様)です。 GtkTextViewを使うか、もし強引に使うのであればインクルードヘッダの前で「GTK_ENABLE_BROKEN」を定義してください。 (余程の事がない限り、GtkTreeViewを使うべき) もしGtkをスタディしていて、サイトにGtkTextを使用するように書かれていたのであれば、ちょっと情報が古すぎます。 現状のGtkのバージョンは3ですが、2ならともかく1は違いが大きすぎるので、オススメしません。