可移植地将 GLib 头文件包含在 autoconf/automake 中

发布于 2024-08-11 03:33:04 字数 292 浏览 13 评论 0原文

我需要包含使用基于 autoconf 的系统构建的项目的 GLib 标头可移植性。

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

I need to include the GLib headers for a project that is built with an autoconf-based system for portability.

How can I safely import the GLib headers in a portable manner? I know about pkg-config, but that is not entirely portable (since some systems don't have it and I would prefer to only rely on autoconf for configuration).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

離殇 2024-08-18 03:33:04

通过使用 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 以及将 pkg-config --cflags glib-2.0的输出附加到变量 DEPS_CFLAGSDEPS_LIBS pkg-config --libs glib-2.0 分别。然后,您可以在 _CFLAGS_LDADD 初选中使用 $(DEPS_CFLAGS)$(DEPS_LIBS) 变量:

bin_PROGRAMS = hello

hello_CFLAGS = $(DEPS_CFLAGS)
hello_SOURCES = hello.c
hello_LDADD = $(DEPS_LIBS)

By using the PKG_CHECK_MODULES macro, Autoconf-generated configure scripts can retrieve pkg-config data automatically. As an example, adding this line to your configure.ac file:

PKG_CHECK_MODULES([DEPS], [glib-2.0 >= 2.24.1])

will cause the resulting configure script to ensure that the installed version of glib-2.0 is greater than or equal to version 2.24.1 as well as append to variables DEPS_CFLAGS and DEPS_LIBS the output of pkg-config --cflags glib-2.0 and pkg-config --libs glib-2.0, respectively. You then use the $(DEPS_CFLAGS) and $(DEPS_LIBS) variables in the _CFLAGS and _LDADD primaries:

bin_PROGRAMS = hello

hello_CFLAGS = $(DEPS_CFLAGS)
hello_SOURCES = hello.c
hello_LDADD = $(DEPS_LIBS)
输什么也不输骨气 2024-08-18 03:33:04

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

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

为了平台可移植性,请指示用户适当设置 $PKG_CONFIG_PATH

The GLib 2.22 INSTALL file states that pkg-config is a requirement for installing this library. I am not being GLib (pun intended!); statement of this requirement is one of the first things on the top of the INSTALL file.

From the text surrounding it is unclear whether pkg-config is needed to compile GLib itself, however it is clear that GLib 2.22 authors do not intend for any users to compile against GLib without having pkg-config. In particular, GLib's make install will install .pc files appropriately.

For platform portability, instruct the user to set $PKG_CONFIG_PATH appropriately.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文