gpt4 book ai didi

c - Autotools PKG_CHECK_MODULES 未设置变量

转载 作者:行者123 更新时间:2023-11-30 15:40:23 25 4
gpt4 key购买 nike

我的第一个 autotools 项目可能是一些简单而愚蠢的东西:它正在创建一个找不到 glib 和其他第 3 方库的 makefile。 (运行 Ubuntu Linux,如果重要的话,编译 C 静态库。)

Configure.ac 包含以下几行:

PKG_CHECK_MODULES([libglib], [glib-2.0 >= 2.28])
PKG_CHECK_MODULES([libobject], [gobject-2.0 >= 2.28])
PKG_CHECK_MODULES([libuuid], [uuid])

Makefile.am如下

lib_LIBRARIES=libblah.a
libblah_a_SOURCES=blah.c util.c
libblah_a_CPPFLAGS=$(libglib_CFLAGS) $(libobject_CFLAGS) $(libuuid_CFLAGS)
libblah_a_LIBADD=$(libglib_LIBS) $(libobject_LIBS) $(libuuid_LIBS)

运行 autoreconf --install 会生成 Makefile.in:

libglib_CFLAGS = @libglib_CFLAGS@
libglib_LIBS = @libglib_LIBS@
libobject_CFLAGS = @libobject_CFLAGS@
libobject_LIBS = @libobject_LIBS@
libuuid_CFLAGS = @libuuid_CFLAGS@
libuuid_LIBS = @libuuid_LIBS@

看起来不错!除此之外,配置脚本声称它找到了这些库,但仍吐出一个 Makefile,将上面的行转换为无用的内容:

libglib_CFLAGS = 
libglib_LIBS =
libobject_CFLAGS =
libobject_LIBS =
libuuid_CFLAGS =
libuuid_LIBS =

救命!

编辑:这是完整的configure.ac文件:

AC_INIT([amblah], [1.0], [bug-automake@gnu.org])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
Makefile
libblah/Makefile
tests/Makefile
])
AC_OUTPUT
AC_PROG_RANLIB
PKG_PROG_PKG_CONFIG(0.26)
PKG_CHECK_MODULES([libglib], [glib-2.0 >= 2.28])
PKG_CHECK_MODULES([libobject], [gobject-2.0 >= 2.28])
PKG_CHECK_MODULES([libuuid], [uuid])

最佳答案

哦!我看到了这个问题,这绝对是一个愚蠢的新手问题。 AC_OUTPUT 使它输出 Makefile 输出等等。 GNU 教程并没有明确说明这一点,我在 AC_OUTPUT 下面放了一些行。因此,当 AC_OUTPUT 生成其输出时,不会考虑这些行。通过将 AC_OUTPUT 移动到最后,可以解决问题。

关于c - Autotools PKG_CHECK_MODULES 未设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21045762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com