因此,我正在为我的代码编写测试,并且我想停止对库函数的调用(确保它在正确的时间调用正确的库调用,并适本地处理错误)。
我认为我是 C 标准库函数的 SOL,但这些并不是我使用的唯一库。
在构建我的最终可执行文件(不是我的测试可执行文件)时,我想使用 -lfuse
,所以我将这一行包含在我的 configure.ac
AC_CHECK_LIB([fuse], [fuse_main])
但是,当它尝试构建我的 check_PROGRAMS
时,它也会抛出 -lfuse
。
在构建我的测试可执行文件(make check
)时,有什么方法可以告诉 autotools 我不需要 -lfuse
库吗?然后我应该能够按照我的意愿删除库调用,因为不会有任何其他链接具有相同的名称。
最佳答案
我看到 libfuse 在其源代码分发中提供了一个 fuse.pc
文件,因此检查它的正确方法是使用 pkg-config
。你可以做
PKG_CHECK_MODULES([APPNAME], [fuse ...and any other libraries to check for...])
在你的 configure.ac
中,然后
appname_CFLAGS += @APPNAME_CFLAGS@
appname_LIBS += @APPNAME_LIBS@
在 src/Makefile.am
中。那么就不要将这些变量添加到您的测试程序中。
关于c - autotools:执行 “make check” 时不包含库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293355/