私はGTK+でラズベリーパイを使用しています。これはARM+Debian +GTK+を意味します。しかし、GTK Webサイトの例でさえ、私の環境では常に失敗します。お気に入り:
#include <gtk/gtk.h>
int main( int argc,
char *argv[] )
{
GtkWidget *window;
//gtk_init (&argc, &argv);
gtk_init_check(&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_widget_show (window);
gtk_main ();
return(0);
}
私はこれをコンパイルしました
gcc -g gtktest.cpp -o base `pkg-config gtk+-2.0 --cflags --libs`
そして成功しました。それを実行すると、私は得ました:
(base:12760): GLib-GObject-WARNING **: invalid (NULL) pointer instance
(base:12760): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
(base:12760): Gtk-WARNING **: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window
(base:12760): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed
(base:12760): Gdk-CRITICAL **: IA__gdk_colormap_get_visual: assertion `GDK_IS_COLORMAP (colormap)' failed
(base:12760): Gdk-CRITICAL **: IA__gdk_screen_get_default_colormap: assertion `GDK_IS_SCREEN (screen)' failed
(base:12760): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
(base:12760): Gdk-CRITICAL **: IA__gdk_screen_get_root_window: assertion `GDK_IS_SCREEN (screen)' failed
(base:12760): Gdk-CRITICAL **: IA__gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
Segmentation fault
gtk_init()のみを使用すると、エラーも発生します。DISPLAY変数を確認し、<my IP>:0.0に設定してみましたが、効果がありませんでした。GTKが表示リソースを取得できないという問題ではないかと思いますが、これを解決する方法が見つかりませんでした。
参考までに、raspberryPiにパテSSHを使用しています。