Как включить необходимую библиотеку C с помощью gcc?

Я пытаюсь скомпилировать простой пример C из этого учебник на Ubuntu с помощью gcc. Что я должен использовать в качестве аргумента для gcc, чтобы включить необходимые библиотеки для #include <libappindicator/app-indicator.h>?

6 ответов


если вы используете apt-get, Synaptic Package Manager, etc. чтобы получить appindicator библиотека (против создания ее из источника), вы только установили libappindicator1 пакет или вы и установить libappindicator-dev для получения libappindicator заголовочные файлы? Пакеты Linux очень часто разделяют библиотеки времени выполнения из заголовков времени компиляции. Таким образом, людям, которым нужны только библиотеки для удовлетворения динамической ссылки, не нужно устанавливать ненужные заголовки. Но поскольку вы занимаетесь разработкой, вам нужны эти заголовки и поэтому нужно libappindicator-dev пакета, а также.


-I <searchpath to include files>
-L <searchpath to the lib file>
-l<thelibname>

использовать командная строка. Вы можете указать путь поиска библиотеки с помощью . Например:

gcc -o myprogram -lfoo -L/home/me/foo/lib myprogram.c

это ссылка myprogram со статической библиотекой libfoo.a в папке /home/me/foo/lib.


что я делаю это:

pkg-config --list-all | grep indicator

gcc example.c -o example  `pkg-config --cflags --libs appindicator-0.1`

pkg-config получит необходимые флаги include и lib для libappindicator и его зависимости. Это предполагает libappindictaor-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