g++ -o hello_world hello_world.cpp `pkg-config --cflags --libs gtk+-2.0`
追記:
ubuntu 9.04(netbook remix)では同じ方法ではコンパイルが通らなかった。pkg-config自体は既にインストールされていたため
$ pkg-config --list-all
でめぼしいものを探したところ「gtk+」という項目を発見。ということで
$ g++ -o sample_gtk.cc -o sample_gtk `pkg-config --cflags --libs gtk+`
と実行してみるとコンパイルに成功した。ubuntu8.10からの変更? pkg-configの仕様が変わった?
後、これの前に
$ sudo apt-get install
を実行。
さらに追記:
コンパイルが通らなかったのはlibgtk2.0-devをインストールしてなかったからでした。
pkg-configはコンパイルオプションを自動生成してくれるスグレモノ。
バッククォートで囲んでいるのはシェルではバッククォートで囲んだ部分の実行結果を変数として格納できるから。
つまりこのコマンドを実行すると
pkg-config --cflags --libs gtk+-2.0
のコマンドの実行結果
-D_REENTRANT -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/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lgio-2.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lglib-2.0
を「g++ -o hello_world hello_world.cpp」の後に付加してコンパイルを実行しているということ。
・・・これ書くぐらいなら楽なもんだなぁ。
0 件のコメント:
コメントを投稿