アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

となっていました。
どなたか解決方法をご存知のかたはいませんでしょうか?

A 回答 (4件)

> ちなみに単体でpkg-config --cflags --libs gtk+-2.0でコマンドを打った場合、


というのから考えると、

cc -o base base.c 'pkg-config --cflags --libs gtk+-2.0'

ここで使っているクォートはバッククォートの間違い?
まあ展開した結果を使って makefile 書いておくのが無難でしょう。
    • good
    • 0
この回答へのお礼

返事が遅くなってすいません。
普通のシングルクォートうってましたw
ありがとうございますw
もうちょっとよく見ないとなぁ

お礼日時:2007/09/01 23:59

あはは^^ たしかに、Unix 系のシェルで pkg-config ってコマンドがあるなら、バッククォートでしょうね(笑)んじゃ、ライブラリのパス指定など必要なく(環境変数で指定されている)、



 cc -o base base.c `pkg-config --cflags --libs gtk+-2.0`

で、うまくいくのかしらん^^
    • good
    • 0
この回答へのお礼

返事が遅くなってすいません。
普通のシングルクォートつかってたみたいです。
ありがとうございますw

お礼日時:2007/09/01 23:58

Unix 系のOSをご使用なされているなら、makeファイルをちょこっと書いておけば、便利化と思います^^

    • good
    • 0

推測ですが、



gcc -o base base.c -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

にライブラリがあるなんちゃらlibディレクトリ -L/usr/lib/gtk-2.0 など、ライブラリのあるディレクトリを -L オプションで指定してやればいいのではないですかね?^^ X Window も使っているようなので、リンカが文句を言ってきたら -L で指定してやればうまくいくんじゃないですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!