我在 C 中实现了一个日志库(我将其命名为 liblogger),并使用 Autotools 来编译和安装它。据我所见,安装已正确完成,因为标头和库本身(我目前捆绑到静态库中)已安装到适当的目录中(/usr/local/include/liblogger/ 用于标头和/usr/local/lib 用于 .a)。
现在我正在尝试将另一个工具与该库链接(也使用 Autotools 编译和构建)。为了检查日志库的存在,我按照这里所说的创建了 configure.ac 文件。但生成的配置脚本说:
检查 /usr/local/include/liblogger/logger.h 可用性...否
检查 /usr/local/include/liblogger/logger.h 的存在...否
检查 /usr/local/include/liblogger/logger.h... 否
检查 -l/usr/local/lib/liblogger.a 中的 log_init ... 否
即使命名文件确实存在。
我在其中检查标头和库的 configure.ac 文件部分如下:
LIBLOGGER=/usr/local/lib
HEADERLOGGER=/usr/local/include/liblogger
AC_CHECK_HEADER([${HEADERLOGGER}/logger.h],
[AC_DEFINE([HAVE_LOGGER_H], [1], [found logger.h])
CFLAGS="$CFLAGS -I${HEADERLOGGER}"])
AC_CHECK_LIB([${LIBLOGGER}/liblogger.a],
log_init, [found liblogger.a], [], [])
AC_SUBST(LIBLOGGER)
实际上,如果我尝试:
AC_CHECK_FILE(
[${HEADERLOGGER}/logger.h],
[AC_MSG_NOTICE([Found logger.h])],
[AC_MSG_NOTICE([Didn't find logger.h])]
)
它确实找到了文件。
谢谢。