gpt4 book ai didi

c - autotools:执行 “make check” 时不包含库

转载 作者:行者123 更新时间:2023-11-28 19:59:38 24 4
gpt4 key购买 nike

因此,我正在为我的代码编写测试,并且我想停止对库函数的调用(确保它在正确的时间调用正确的库调用,并适本地处理错误)。

我认为我是 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com