问题
I have implemented a logging library in C (which I've named liblogger), and used Autotools to compile and install it. As far as I can see, the installation is correctly done, since the headers and the library itself (which I currently bundle into a static library) are installed into the appropriate directories (/usr/local/include/liblogger/ for the headers and /usr/local/lib for the .a).
Now I am trying to link another tool with that library (compiled and built also using Autotools). To check for the logging library presence, I have followed what is said here to create the configure.ac file. But the resulting configure script says:
checking /usr/local/include/liblogger/logger.h usability... no
checking /usr/local/include/liblogger/logger.h presence... no
checking for /usr/local/include/liblogger/logger.h... no
checking for log_init in -l/usr/local/lib/liblogger.a... no
even though the named files DO exist.
The part of the configure.ac file where I check for the header and the library is as follows:
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)
Actually, if I try with:
AC_CHECK_FILE(
[${HEADERLOGGER}/logger.h],
[AC_MSG_NOTICE([Found logger.h])],
[AC_MSG_NOTICE([Didn't find logger.h])]
)
it does find the file.
Thanks.
回答1:
The problem was not on the tool's configure.ac, but in the original logger library. When inspecting the config.log file generated when running the configure script, there was a line saying:
/usr/local/include/liblogger/logger.h:22:19: fatal error: types.h: No such file or directory
So I actually had to reorganize some dependencies in the logger library.
In fact, setting HEADERLOGGER
to liblogger
doesn't solve the problem, since (I don't know why), "/urs/local/include/liblogger" is not being searched for, returning
configure: error: Couldn't find liblogger/logger.h
(Perhaps I'm forgetting some previous AC instruction for that).
The moral: the log files are there for a reason... :-S
来源:https://stackoverflow.com/questions/14216076/configure-ac-library-and-headers-not-usable-and-not-present