Включите заголовки GLib в autoconf/automake
Мне нужно включить заголовки GLib для проекта, который построен на основе системы autoconf для переносимости.
Как безопасно импортировать заголовки GLib в переносимом режиме? Я знаю о pkg-config, но он не является полностью переносимым (поскольку в некоторых системах его нет, и я бы предпочел полагаться только на autoconf для настройки).
2 ответа
GLib 2.22 INSTALL
файл утверждает, что pkg-config
является обязательным требованием для установки этой библиотеки. Я не являюсь GLib (каламбур!); Изложение этого требования является одной из первых вещей на вершине INSTALL
файл.
Из окружающего текста неясно, pkg-config
необходим для компиляции самого GLib, однако ясно, что авторы GLib 2.22 не собираются собирать компиляторы для GLib без использования pkg-config. В частности, GLib's make install
установлю .pc
файлы соответственно.
Для переносимости платформы попросите пользователя установить $PKG_CONFIG_PATH
соответственно.
Используя PKG_CHECK_MODULES
макрос, сгенерированный Autoconf configure
Скрипты могут получать данные pkg-config автоматически. Например, добавив эту строку в ваш configure.ac
файл:
PKG_CHECK_MODULES([DEPS], [glib-2.0 >= 2.24.1])
приведет к получению configure
сценарий, чтобы убедиться, что установленная версия glib-2.0 больше или равна версии 2.24.1, а также добавлять к переменным DEPS_CFLAGS
а также DEPS_LIBS
выход pkg-config --cflags glib-2.0
а также pkg-config --libs glib-2.0
соответственно. Затем вы используете $(DEPS_CFLAGS)
а также $(DEPS_LIBS)
переменные в _CFLAGS
а также _LDADD
праймериз:
bin_PROGRAMS = hello
hello_CFLAGS = $(DEPS_CFLAGS)
hello_SOURCES = hello.c
hello_LDADD = $(DEPS_LIBS)