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

标签 c testing autotools stubs

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

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

相关文章:

c - 3D vector 加速欧氏距离

c - 如何删除 C 中的 NULL 输入?

angularjs - 单击表中的列 - Protractor

node.js - 我将如何测试在 express 中使用 mocha/chai/superagent 发送路由?

c++ - 不用qmake编译Qt5代码

c++ - Makefile.am 中的 ifdef

c - 我的 C 程序需要一些帮助,我遇到了段错误,但我不知道为什么

c++ - 为什么 windows GDI 对 `COLORREF` 使用 RGBA 格式而不是 BGRA?

javascript - 使用 Karma Jasmine - 如何测试元素和 javascript?

c - 如何在检查单元测试中设置从文件读取输入的路径?