Невозможно скомпилировать базовую программу GLIB после установки GLIB - PullRequest
1 голос
/ 02 февраля 2010

Я не могу скомпилировать эту базовую программу, используя glib.h ...

#include glib.h
#include stdio.h

int    main ()
{
return ((glib_major_version) || (glib_minor_version) || (glib_micro_version));  ;
return 0;
}

glib.h находится в /usr/local/include/glib-2.0

Итак, я скомпилировал с

$ gcc -v -c -mcpu=v9 -I/usr/local/include/glib-2.0 testme2.c 

Теперь мне не хватает glibconfig.h. Но это в /usr/local/lib/glib-2.0/include/glibconfig.h

Странно, но glibconfig.h - единственный файл в каталоге /usr/local/lib/glib-2.0/include и, что еще более странно, его нет в каталоге /usr/local/include/glib-2.0

Вот еще несколько сообщений об ошибках ...

from /usr/local/include/glib-2.0/glib.h:32,
            from testme.c:40:
:34:24: glibconfig.h: No such file or directory

Вот выдержка из /usr/local/include/glib-2.0/glib/gtypes.h

ifndef __G_TYPES_H__
define __G_TYPES_H__

include glibconfig.h
include glib/gmacros.h

G_BEGIN_DECLS

typedef char   gchar;
typedef short  gshort;

Вопрос в том, как GCC должен найти glibconfig.h?

Ответы [ 3 ]

5 голосов
/ 02 февраля 2010

Glib устанавливает файл glib-2.0.pc, который описывает все параметры, необходимые для компиляции и компоновки.

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
g++ -c `pkg-config --cflags glib-2.0` testme2.c
g++ -o testme2 testme.o `pkg-config --libs glib-2.0`

Обратите внимание на использование pkg-config в обратных кавычках.

3 голосов
/ 02 февраля 2010

$ pkg-config --cflags --libs glib-2.0<br> -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -lglib-2.0

Рекомендуется использовать pkg-config вместо ручной настройки, если существуют файлы .pc для нужных библиотек и вернуться к ручной настройке, если у вас есть особые потребности или не существует конфигурации для библиотеки, которую вы собираетесь использовать. Как видите, pkg-config сообщает компилятору о том, что каталоги glib-2.0 и glib-2.0 / include должны помещаться в путь поиска, когда корневой заголовок выполняет поиск в глобальном пути.

Вы можете вывести вывод pkg-config в команду компиляции через gcc &#96;pkg-config ...&#96; ...

.pc файлы обычно устанавливаются в / usr / include / pkgconfig

0 голосов
/ 02 февраля 2010

В дистрибутиве glib должна быть программа с именем glib-config.Если вы запустите его с аргументом --cflags, он перечислит все необходимые флаги gcc.Например, в моей системе:

$ glib-config --cflags
-I/usr/include/glib-1.2 -I/usr/lib/glib/include

Как видите, оба каталога указаны как включающие каталоги.Также есть флаги --libs, которые вы можете передать своему компоновщику, так что все правильные библиотеки связаны, и путь поиска компоновщика указан правильно.

...