AC_SEARCH_LIBS找不到我的图书馆

时间:2015-01-17 19:50:37

标签: c autotools glib

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

  

gint g_ascii_digit_value(gchar c);

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

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

我做错了什么?

1 个答案:

答案 0 :(得分:3)

经过一番搜索,我发现我需要使用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@