gcc を使用して、Ubuntuでこのチュートリアルの単純な C の例をコンパイルしようとしています。に必要なライブラリを含めるには、gcc の引数として何を使用する必要があります#include <libappindicator/app-indicator.h>
か?
6 に答える
-I<search path to include files>
-L<search path to the lib file>
-l<libname>
-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 は、必要な include フラグと lib フラグをフェッチし、そのlibappindicator
依存関係を取得します。libappindictaor-dev
これは、パッケージが既にインストールされていることを前提としています。
私がすることは:
pkg-config --list-all | grep indicator
apt-get
、Synaptic Package Manager
などを使用してappindicator
ライブラリを取得した場合 (ソースからビルドするのではなく)、libappindicator1
パッケージのみをインストールしましたか、それともヘッダー ファイルを取得するためにもインストールしましたか? Linux パッケージでは、ランタイム ライブラリがコンパイル時のヘッダーから分割されていることがよくあります。そうすれば、動的リンクを満たすためだけにライブラリが必要な人は、不要なヘッダーをインストールする必要がなくなります。ただし、開発を行っているため、これらのヘッダーが必要であり、したがってパッケージも必要です。libappindicator-dev
libappindicator
libappindicator-dev
ここでやろうとしているのは、gtk アプリを作成することです。上記の解決策は、-l オプションや -I オプションを使用するなど、どこにでも適用できます。
ただし、GTK アプリの場合は、pkg-config を使用することもできます。これにより、パスを事前定義できるので簡単になります
http://www.freedesktop.org/wiki/Software/pkg-config
興味深い例がここにあります http://developer.gnome.org/gtk/2.24/gtk-compiling.html