2011-08-10 11 views
0

私は使用マークアップを使いたいが、うまくいかないようです。それがなければ、すべてうまく動作します。GtkLabelセグメンテーションエラー

label_markup = g_object_new(GTK_TYPE_LABEL, "wrap", TRUE, "use-markup", TRUE, "label", "<span font_desc=\"Courier New Bold 16\">Courier-span>"); 

間違った開発パッケージがインストールされている可能性がありますか?私は2.0のチュートリアルをやっていますが、誤ってlibgtk3.0-devをインストールして、私のリポジトリを更新しました。今それは削除されましたか?これを読んで誰FOR


EDIT:の例では、書籍「公式GNOME 2開発ガイド」からのものであり、ページ114-115で見つけることができる - 私はちょうどそれを短縮します。問題は、コンパイラが不平を言っていないことです。理由を知らずにプログラムを実行することはできません。

答えて

2

g_object_new()コールの最後にNULLが必要です。これがなければ、渡された引数の数を知る方法がないため、セグメンテーション違反が発生します。

+0

これはそれでした!私はそれを試して、それは完全に働いた。あなたは私のヒーローです...ありがとうございます。バグは実際には本のソースコードにあり、コンパイラがまったく不平を言っていないので意味のあるものです。 –

+0

その本はかなり古いものです。もっと新しい本を使ってGnomeプログラミングを学ぶことをお勧めします。例えば、developer.gnome.orgの10分のチュートリアルです。 – ptomato

+0

そして、実際には、コンパイラが不平を言っていないバグです。 'g_object_new()'は、属性 'G_GNUC_NULL_TERMINATED'で宣言する必要があります。そうではありません、私は見ました:[gobject.h](http://git.gnome.org/browse/glib/tree/gobject/gobject.h)bugzilla.gnome.orgで報告しますか? – ptomato