configure.ac: Library and headers not usable and not present

你离开我真会死。 提交于 2019-12-25 02:23:26

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!