在autoconf / automake中可以包含GLib头文件

时间:2009-11-14 00:50:17

标签: autotools autoconf automake pkg-config

我需要为使用基于autoconf的系统构建的项目包含GLib标头,以便于移植。

如何以便携方式安全地导入GLib标头?我知道pkg-config,但这不是完全可移植的(因为有些系统没有它,我宁愿只依靠autoconf进行配置)。

2 个答案:

答案 0 :(得分:12)

通过使用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_CFLAGSDEPS_LIBS分别是pkg-config --cflags glib-2.0pkg-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)

答案 1 :(得分:4)

GLib 2.22 INSTALL文件指出pkg-config是安装此库的必要条件。我不是格利布(双关语!);此要求的声明是INSTALL文件顶部的首要内容之一。

从周围的文字不清楚是否需要pkg-config来编译GLib本身,但很明显,GLib 2.22作者并不打算让任何用户在没有pkg-config的情况下针对GLib进行编译。特别是,GLib的make install会正确安装.pc个文件。

要获得平台可移植性,请指示用户正确设置$PKG_CONFIG_PATH