Как включить необходимую библиотеку 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
пакет уже установлен.
Здесь вы пытаетесь создать приложение 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