- ベストアンサー
C++BuilderXPersonal(for Linux)
を今日インストールして Linux GUIプログラムを作ろうとしたのですが どうやらこれはコンソールプログラムしかできないようです コンソールプログラムならばC++コマンド使ったほうが断然作りやすいので骨折り損でした gccを使って Linux GUIプログラムを作りたいのですが作り方を分かりやすく紹介しているサイトはないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
レスがないようなので、参考に。 私も開発環境を作ろうとしていて出来ていないのですが、 GUI 生成の方法はいくつかあるようですが、例えば、 GTK+, GDK などのキットを用意しないといけないようです。 面倒なのは、これらが GLib を必要とすることで、 これをまず生成しないといけない。 で、どんどん必要な前準備を追求していると、敷居が高く なることです。 Linux はソースが公開されていますから、ネットの情報は そろっているようです。一発でこと足りるとはいかないかも 知れませんが、根気があれば可能でしょう。
その他の回答 (1)
- guuman
- ベストアンサー率30% (100/331)
チュートリアル
お礼
gomi.cpp: #include <gtk/gtk.h> static void hello( GtkWidget *widget,gpointer data) { g_print("Hello World\n"); } static gboolean delete_event(GtkWidget *widget, GdkEvent *event,gpointer data ) { g_print ("delete event occurred\n"); return TRUE; } static void destroy(GtkWidget *widget,gpointer data ) { gtk_main_quit (); } int main(int argc,char *argv[] ) { GtkWidget *window; GtkWidget *button; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (G_OBJECT (window),"delete_event",G_CALLBACK (delete_event), NULL); g_signal_connect (G_OBJECT(window),"destroy", G_CALLBACK (destroy), NULL); gtk_container_set_border_width (GTK_CONTAINER (window),10); button=gtk_button_new_with_label("Hello World"); g_signal_connect(G_OBJECT(button),"clicked", G_CALLBACK (hello), NULL); g_signal_connect_swapped(G_OBJECT(button), clicked",G_CALLBACK(gtk_widget_destroy),G_OBJECT (window)); gtk_container_add(GTK_CONTAINER (window),button); gtk_widget_show(button); gtk_widget_show(window); gtk_main(); return 0; } makefile: file=gomi $(file).exe:$(file).cpp c++ $< -o $@ `pkg-config --cflags --libs gtk+-2.0` clear: rm -f $(file).o $(file).exe を作り # make # c++ gomi.cpp -o gomi.exe `pkg-config --cflags --libs gtk+-2.0` # ./gomi.exe とすればウィジェットができボタンを押すと Hello World # となりとうとうLinux GUIプログラムができました! ありがとうございます
お礼
#include </usr> のところは #include </usr/include/gtk-2.0/gtk/gtk.h> の書き間違いです
補足
ありがとうございます 早速調べて test.cpp: #include <stdio.h> #include </usr> gint QUIT(GtkWidget *widget,gpointer data); int main(int argc,char *argv[]){ GtkWidget *window; gtk_set_locale(); gtk_init(&argc,&argv); window=gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window),"TEST WINDOW"); gtk_signal_connect(GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(QUIT),NULL); gtk_widget_set_usize(GTK_WIDGET(window),300,200); gtk_widget_show_all(window); gtk_main(); return 0; } gint QUIT(GtkWidget *widget,gpointer data) { gtk_main_quit(); return TRUE; } を作りFedoraCoreで # c++ test.cpp を実行したのですが test.cpp:2 から include されたファイル中: /usr/include/gtk-2.0/gtk/gtk.h:31:21: gdk/gdk.h: そのようなファイルやディレクトリはありません /usr/include/gtk-2.0/gtk/gtk.h:32:31: gtk/gtkaccelgroup.h: そのようなファイルやディレクトリはありません ・・・・・・・・・・・・・・・・・ というエラーがいっぱい出ます /usr/include/gtk-2.0/gtk/gtk.h や /usr/include/gtk-2.0/gdk/gdk.h や /usr/include/gtk-2.0/gtk/gtkaccelgroup.h はあります 何か設定が悪いのでしょうか?