我目前正在学习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
我做错了什么?
答案 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@