• 締切済み

gtk2 gladeのc++ビルド

OpenIndiana に gtk2 library/desktop/gtk2 0.5.11(ビルド5.11-0.151.1.2) glade developer/ui-designer/glade 0.5.11(ビルド 5.11-0.151.1.2) パッケージをインストールして、 NetBeans IDE 7.1をつかって、c++で下記プログラムをビルドしてみようとしたのですが、 ビルドエラーになってしまいました。 #define GTK_DISABLE_DEPRECATED 1 #define LIBGLADE_DISABLE_DEPRECATED 1 #include <gtk/gtk.h> #include <glade/glade.h> G_BEGIN_DECLS void on_button2_clicked(); G_END_DECLS void on_button2_clicked() { printf("clicked!\n"); } int main(int argc, char* argv[]) { GladeXML* xml; GtkWidget* window; gtk_init(&argc, &argv); xml = glade_xml_new("glade_test.glade", NULL, NULL); if (!xml) { printf("glade file error.\n"); return 1; } window = glade_xml_get_widget(xml, "window"); glade_xml_signal_autoconnect(xml); g_object_unref(G_OBJECT(xml)); gtk_widget_show(window); gtk_main(); return 0; } インクルードパス、ライブラリパス等が不足しているのかと思い、 /usr/include/gtk-2.0 へインクルードパスを通してみたのですが、やはりたくさんエラーがでているようでした。 ビルドに必要なincludeパス、ライブラリパス、その他不足しているもの等ございましたら、 ご教授よろしくお願いいたします。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

エラーメッセージをわざわざ秘密にするということは, つまり 実際に試した人間からの回答しか認めない と主張しているということでいいでしょうか?

関連するQ&A

  • Linux GTK+でのコンパイルエラー

    GKT+でプログラミングをしたいと思い、下記のサイトを見ながらサンプルプログラムをコンパイルしたら下のようなエラーが表示されました。原因が全くわからず困っています。わかる方教えてください。 【参考にしたサイト】 http://samidarehetima.web.fc2.com/howtogtk/top.html#toc_1 【コード】 #include <gtk/gtk.h> //ボタンがクリックされたときに呼び出される関数 static void button_clicked(GtkWidget *button, gpointer user_data) { gtk_main_quit(); } int main(int argc, char** argv){ GtkWidget *window; gtk_init(&argc,&argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_size_request(window,300,200); { //ボタンを作成する。 GtkWidget *button; button = gtk_button_new_with_label("Quit"); //ボタンをwindowに乗っける。 gtk_container_add(GTK_CONTAINER(window), button); //ボタンにclickedと表示し,押された時はbutton_clicked()を呼び出す。 g_signal_connect (G_OBJECT(button), "clicked" , G_CALLBACK(button_clicked), NULL); } g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); //windowの上にある物も全て表示する。(_allが付くことに注意) gtk_widget_show_all(window); gtk_main(); return 0; } 【エラー】 /tmp/ccmjmPda.o: In function `button_clicked': test.c:(.text+0x7): undefined reference to `gtk_main_quit' /tmp/ccmjmPda.o: In function `main': test.c:(.text+0x25): undefined reference to `gtk_init' test.c:(.text+0x31): undefined reference to `gtk_window_new' test.c:(.text+0x51): undefined reference to `gtk_widget_set_size_request' test.c:(.text+0x5d): undefined reference to `gtk_button_new_with_label' test.c:(.text+0x66): undefined reference to `gtk_container_get_type' test.c:(.text+0x76): undefined reference to `g_type_check_instance_cast' test.c:(.text+0x86): undefined reference to `gtk_container_add' test.c:(.text+0x9f): undefined reference to `g_type_check_instance_cast' test.c:(.text+0xcb): undefined reference to `g_signal_connect_data' test.c:(.text+0xeb): undefined reference to `gtk_main_quit' test.c:(.text+0xff): undefined reference to `g_signal_connect_data' test.c:(.text+0x10b): undefined reference to `gtk_widget_show_all' test.c:(.text+0x110): undefined reference to `gtk_main' collect2: ld はステータス 1 で終了しました

  • Ubuntu feisy fawnでGTK+のプログラミングのコンパイルにて

    Ubuntu feisty fawnでGTK+とgccを使ってプログラミングをしたいのですが、コンパイルで手間取ってしまいました。 ソース #include <gtk/gtk.h> int main(int argc,char *argv[]){ GtkWidget *window; gtk_init(&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_show(window); gtk_main(); return 0; } インストールしたパッケージ libgtk-2.0 pkg-config0.21-1build1 gcc-4.1 gcc-4.1-base これをコンパイルするときに cc -o base base.c 'pkg-config --cflags --libs gtk+-2.0' でやると cc: pkg-config --cflags --libs gtk+-2.0: No such file or directory base.c:1:21: error: gtk/gtk.h: No such file or directory base.c: In function ‘main’: base.c:4: error: ‘GtkWidget’ undeclared (first use in this function) base.c:4: error: (Each undeclared identifier is reported only once base.c:4: error: for each function it appears in.) base.c:4: error: ‘window’ undeclared (first use in this function) base.c:8: error: ‘GTK_WINDOW_TOPLEVEL’ undeclared (first use in this function) ちなみに単体でpkg-config --cflags --libs gtk+-2.0でコマンドを打った場合、 -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 となっていました。 どなたか解決方法をご存知のかたはいませんでしょうか?

  • GTK+のHelloWorldは

    static void hello (GtkWidget *widget,gpointer data) { ・・・・・・・・・・・・・・・・ } static gboolean delete_event (GtkWidget *widget,GdkEvent *event,gpointer data) { ・・・・・・・・・・・・・・・・ return FALSE; } static void destroy (GtkWidget *widget,gpointer data) { ・・・・・・・・・・・・・・・・ } int main(int argc,char *argv[]) { GtkWidget *window; GtkWidget *button; ・・・・・・・・・・・・・・・・ g_signal_connect (G_OBJECT(window),"delete_event",G_CALLBACK (delete_event),NULL); g_signal_connect (G_OBJECT (window),"destroy",G_CALLBACK (destroy),NULL); ・・・・・・・・・・・・・・・・ g_signal_connect (G_OBJECT(button),"clicked",G_CALLBACK (hello),NULL); ・・・・・・・・・・・・・・・・ return 0; } ですが g_signal_connectの引数のコールバック関数において delete_eventは gboolean FUNC(GtkWidget*,GdkEvent*,gpointer) の形をしているのに helloとdestroyは void FUNC(GtkWidget*,gpointer) の形をしています これらのコールバック関数の形を勝手に決めていいものでしょうか?

  • gcc gtkコンパイル,エラーの内容がわからない

    ソース:https://www.ibm.com/developerworks/jp/linux/library/l-cairo/index.html のサイトから Cairo code to draw IBM logo (cairo-example.tar | 20KB) をダウンロードし、コンパイルしたところ、エラーが出ましたが、エラーの内容が全然わかりません。どなたか教えてくれませんでしょうか? cairo$ gcc -o ibm_cairo_logo ibm_cairo_logo.c $(pkg-config --cflags --libs gtk+-3.0) ibm_cairo_logo.c: In function ‘draw_gtk’: ibm_cairo_logo.c:238:3: warning: ‘gdk_cairo_create’ is deprecated: Use 'gdk_window_begin_draw_frame() and gdk_drawing_context_get_cairo_context()' instead [-Wdeprecated-declarations] cr = gdk_cairo_create (widget->window); ^~ In file included from /usr/include/gtk-3.0/gdk/gdk.h:33:0, from /usr/include/gtk-3.0/gtk/gtk.h:30, from ibm_cairo_logo.c:1: /usr/include/gtk-3.0/gdk/gdkcairo.h:35:12: note: declared here cairo_t * gdk_cairo_create (GdkWindow *window); ^~~~~~~~~~~~~~~~ ibm_cairo_logo.c:238:32: error: ‘GtkWidget {aka struct _GtkWidget}’ has no member named ‘window’ cr = gdk_cairo_create (widget->window); ^~

  • MinGWとmsysでGTK+の開発環境を整えたい

    WindowsXP上で、コンパイラにMinGWを用いてGTK+2.0を用いたGUIアプリケーションの開発を行いたいと思っています。 しかし、GTK+2.0のサンプルソースのコンパイルが通りません。 コマンドとそのエラーは以下の通りです。 どうもヘッダーが見つからないと言っているようですが、ヘッダーをコンパイラのincludeフォルダに入れても駄目でした。 いれたGTK+はGlade等、全てがパックになっているものでした。インストール時にmsysを認識してくれていたので、勝手に設定をしてくれるのかと思ったのですが…。 $ gcc hello_gtk.c 'pkg-config gtk+-2.0 --cflags' hello_gtk.c:1:21: gtk/gtk.h: No such file or directory hello_gtk.c: In function `main': hello_gtk.c:5: error: `GtkWidget' undeclared (first use in this function) hello_gtk.c:5: error: (Each undeclared identifier is reported only once hello_gtk.c:5: error: for each function it appears in.) hello_gtk.c:5: error: `window' undeclared (first use in this function) hello_gtk.c:6: error: `label' undeclared (first use in this function) hello_gtk.c:10: error: `GTK_WINDOW_TOPLEVEL' undeclared (first use in this function) gcc.exe: pkg-config gtk+-2.0 --cflags: No such file or directory どうすれば、コンパイルできるようになるのでしょう?

  • VC++ 2010 Expressでのビルド

    VC++2010 Expressを使ってC++を書いているのですが、 今までは、使用するクラスファイルを全てエントリーポインのある int _tmain(int argc, _TCHAR* argv[])の上に記述して使っていたのですが、クラスの数が増えてきたので、エントリーファイルと同階層のソースファイルフォルダの下に置くようにしました。この場合、たとえば下記のメイン部分のように、 基底クラスの読み込み順を考量して、#includeしているのですが、エントリポイントのファイルを「右クリック」->「コンパイル」はエラー無しではけるようになったのですが、 F5キーでデバッグを開始してビルドする多くのエラーをはいてしまいます。 とりあえず、全てのクラスファイルをインクルードした形のエントリポインタのファイルのコンパイルはうまくいっているので、その結果を使ってビルドする方法が分かりかねています。 Expressの使い方の問題だと思うので、御経験のある方、御教示願えたらと思います。 <メイン部分> #include "stdafx.h" #include <iostream> using namespace std; #include "point.cpp" #include "canvas.cpp" #include "shape.cpp" #include "rect.cpp" #include "triangle.cpp" #include "square.cpp" int _tmain(int argc, _TCHAR* argv[]) { Canvas c; Shape *shape[3]; Rect r(5, 5, 20, 10); shape[0] = &r; Triangle t(1, 18, 16, 8); shape[1] = &t; Square s(22, 2, 6); shape[2] = &s; for (int i=0; i<3; i++) shape[i]->draw(&c); c.show(); getchar(); return 0; }

  • MacでC言語を勉強してみてるのですが

    最近C言語に興味を持って 趣味程度に、ハーバート・シルトさん著の「独習C」を、 Xcodeを使ってCが使える感じにして、 プログラミングを打って、ビルドして、コンソールで結果を見て、ふむふむ、ってやっていたのですが、 7章の4節でコマンドライン引数というものが出てきて、 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i; double d; long l; i = atoi(argv[1]); l = atol(argv[2]); d = atof(argv[3]); printf("%d %ld %f", i, l, d); return 0; } という例題のプログラムの結果を見たいのですが、コマンドラインというものがどうすればXcodeで見られるのかよくわかりません。 ぜひ助けてください。コンソールには出ないんですよね・・・?

    • ベストアンサー
    • Mac
  • プログラミング(argcとargv)

    入力された数の合計とその計算式を表示するプログラムをつくっています。惜しい(?)ところまでいったのですがその先がなかなか進みません。以下のプログラムのどこを修正したらよいでしょうか?教えてください。 #include <stdio.h> #include <stdlib.h> #define nMAX 10 int main(int argc, char **argv){ int sum = 0; if(argc < 2){ printf("Too few option!\n"); return 1; } int i, n; for(i = 1; i < argc; i++){ n = atoi(argv[i]); sum = sum + n; } printf("%d\n", sum); }

  • C++の 初心者です

    EclipseでC++の勉強中です。 以下はサンプルなのですが、一部赤線がでてしまい、実行ができません。。 赤線がでてしまう箇所・・・「OFConsoleApplication app」「OFCommandLine cmd;」 #include <iostream> #include "ofconapp.h" #define OFFIS_CONSOLE_APPLICATION "A" #define OFFIS_DCMTK_VERSION "B" #define OFFIS_DCMTK_RELEASEDATE "C" static char rcsid[] = "$dcmtk: " OFFIS_CONSOLE_APPLICATION " v" OFFIS_DCMTK_VERSION " " OFFIS_DCMTK_RELEASEDATE " $"; class OFConsoleApplication; class OFCommandLine; using namespace std; int main(int argc, char *argv[]){ OFConsoleApplication app(OFFIS_CONSOLE_APPLICATION, "Convert image file to DICOM", rcsid); OFCommandLine cmd; return 0; } 以上、よろしくお願いいたします。

  • C++でOpenCV コンパイルでエラー

    超初心者です。 Visual C++2010 ExpressでOpenCVを使おうとしています。 このページを参考にしています。 http://gihyo.jp/dev/feature/01/opencv/0002?page=2 プログラムは以下の通り。 #include <C:\Program Files (x86)\opencv\build\include\opencv\cv.h> #include <C:\Program Files (x86)\opencv\build\include\opencv\highgui.h> int main(int argc, char* argv[]) { IplImage* img; // 画像ファイルポインタの宣言 char imgfile[] = "lena.jpg"; // 読み込み画像ファイル名 // 画像の読み込み img = cvLoadImage(imgfile, CV_LOAD_IMAGE_COLOR); // 画像の表示 cvNamedWindow ("lena", CV_WINDOW_AUTOSIZE); cvShowImage ("lena", img); cvWaitKey (0); cvDestroyWindow("lena"); // 画像の解放 cvReleaseImage(&img); return 0; } コンパイルすると、以下のエラーメッセージが出ます。 1>------ ビルド開始: プロジェクト: try, 構成: Debug Win32 ------ 1> try.cpp 1>c:\program files (x86)\opencv\build\include\opencv\cv.h(63): fatal error C1083: include ファイルを開けません。'opencv2/core/core_c.h': No such file or directory ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== どのようにすれば通るのでしょうか? 教えてください。よろしくお願いします。