これから簡単なCの例をコンパイルしようとしています Tutorial Ubuntuでgccを使用しています。 #include <libappindicator/app-indicator.h>
に必要なライブラリを含めるには、gccの引数として何を使用する必要がありますか?
apt-get
、Synaptic Package Manager
などを使用してappindicator
ライブラリを取得した場合(ソースからビルドする場合)、libappindicator1
パッケージのみをインストールしたか、またはまたはlibappindicator-dev
をインストールしてlibappindicator
ヘッダーファイルを取得しますか? Linuxパッケージでは、ランタイムライブラリをコンパイル時のヘッダーから分割することがよくあります。こうすることで、ダイナミックリンクを満たすためにライブラリのみを必要とするユーザーは、不要なヘッダーをインストールする必要がなくなります。ただし、開発を行っているため、これらのヘッダーが必要であり、そのためlibappindicator-dev
パッケージも必要です。
-I <searchpath to include files>
-L <searchpath to the lib file>
-l<thelibname>
-l
コマンドラインオプションを使用します。 -L
オプションを使用してライブラリ検索パスを指定できます。例えば:
gcc -o myprogram -lfoo -L/home/me/foo/lib myprogram.c
これにより、myprogram
がフォルダーlibfoo.a
の静的ライブラリ/home/me/foo/lib
にリンクされます。
gcc example.c -o example `pkg-config --cflags --libs appindicator-0.1`
pkg-configは、libappindicator
とその依存関係に必要なインクルードおよびlibフラグをフェッチします。これはlibappindictaor-dev
パッケージはすでにインストールされています。
私がしていることは:
pkg-config --list-all | grep indicator
ここでしようとしているのは、gtkアプリを作成することです。上記の解決策は、-lオプションや-Iオプションを使用するなど、どこでも適用できます。
ただし、GTKアプリの場合、パスを事前定義できるため、pkg-configを使用して簡単にすることもできます。
http://www.freedesktop.org/wiki/Software/pkg-config
興味深い例がここにあります http://developer.gnome.org/gtk/2.24/gtk-compiling.html