7

我需要为一个使用基于 autoconf 的系统构建的项目包含GLib头文件以实现可移植性。

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

4

2 回答 2

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_CFLAGS和 和DEPS_LIBS的输出。然后在and初选中使用and变量: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)
于 2010-08-21T19:43:17.263 回答
4

GLib 2.22INSTALL文件指出这pkg-config是安装此库的要求。我不是 GLib(双关语!);此要求的声明是INSTALL文件顶部的第一件事。

从周围的文本中不清楚是否pkg-config需要编译 GLib 本身,但是很明显,GLib 2.22 作者不打算让任何用户在没有 pkg​​-config 的情况下针对 GLib 进行编译。特别是,GLibmake install将适当地安装.pc文件。

为了平台的可移植性,请指导用户进行$PKG_CONFIG_PATH适当的设置。

于 2009-12-12T05:29:12.133 回答