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

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

7 ответов

Решение

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

Путь по умолчанию для всех включаемых файлов C++, таких как файлы библиотек и файлы заголовков в Ubuntu/Linux, находится в/usr/include/c++/11

Другие вопросы по тегам