AC_SEARCH_LIBS 找不到我的图书馆

AC_SEARCH_LIBS is not finding my library

我目前正在学习 autotools 并且一直在努力弄清楚如何使用 AC_SEARCH_LIBS 所以我从 glib 手册中随机选择了一个 function 来包含在我的 c 项目中:

gint g_ascii_digit_value (gchar c);

接下来我向 configure.ac 添加了一个 AC_SEARCH_LIBS 宏:

AC_INIT([myproject], [123], [me@example.com])
AC_SEARCH_LIBS([g_ascii_digit_value], [glib], [], [
  AC_MSG_ERROR([unable to find the g_ascii_digit_value() function])
])
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_OUTPUT([Makefile src/Makefile])

但是,当我 运行 autoreconf -i 后跟 ./configure 时,我得到错误:

configure: error: unable to find the g_ascii_digit_value() function

我正在使用 OS X 并检查我是否安装了 glib 库:

snowch:autoconf snowch$ brew install glib
Warning: glib-2.42.1 already installed

我做错了什么?

经过一番搜索,我发现我需要使用 PKG_CHECK_MODULES,如下所示:

AC_INIT([myproject], [123], [me@example.com])

PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.3.0])
AC_SUBST([GLIB_CFLAGS])
AC_SUBST([GLIB_LIBS])

AM_INIT_AUTOMAKE
AC_PROG_CC
AC_OUTPUT([Makefile src/Makefile])

然后 GLIB 变量需要添加到 src/Makefile.am:

bin_PROGRAMS = helloworld

helloworld_SOURCES = main.c
helloworld_LDADD = @GLIB_LIBS@
helloworld_CFLAGS = @GLIB_CFLAGS@