c - 为检查测试 C 框架构建库

标签 c makefile check-framework

我开始使用check 框架来测试C 应用程序。 为了更好地理解,我浏览了检查包中的示例。它工作正常,但我不需要 automake 工具 - 我想用我自己的 Makefile 编译它(因为我想正确理解检查并且我需要将我的最终应用程序用作操作系统的包)。也许我可以在那里使用自动生成的 Makefile,但就目前而言,这将是我必须学习的下一个新事物,而且我准备单元测试的时间有限。 (然后,当然要研究和了解生成Makfile的工具,使用configure等)

在使用我的 Makefile 构建应用程序时出现问题,我没有为检查功能链接对象:

/tmp/ccm7cniy.o: In function `test_money_create':
check_money.c:(.text+0x1e): undefined reference to `tcase_fn_start'
check_money.c:(.text+0x79): undefined reference to `_fail_unless'
check_money.c:(.text+0xcc): undefined reference to `_fail_unless'

我发现,在示例应用程序中是带有 obj 的 gcc。文件 check_money-check_money.o,由 gcc 创建:

gcc -DHAVE_CONFIG_H -I. -I..     -g -O2 -MT check_money-check_money.o -MD -MP -MF .deps/check_money-check_money.Tpo -c -o check_money-check_money.o `test -f'check_money.c' || echo './'`check_money.c

这是我的问题:它使用依赖项 check_money-check_money.Tpo。此文件是由命令 ./configure 生成的,我不使用它。

如何创建自己的 .o 文件以检查构建是否成功?有必要为每个应用程序创建这个文件吗?不能是一个,在共享库的某个地方?

(很抱歉,如果我的问题是“愚蠢的”,我在 linux 中构建应用程序的经验还很少)

最佳答案

添加评论作为回应:
请检查您是否安装了check 框架。如果是这样,您可以尝试使用 pkg-config

gcc check_money.c `pkg-config --cflags --libs check`

此处 pkg-config 实用程序将读取 .pc 文件(在 check 的情况下恰好是 check.pc 框架,因此命令中的最后一个条目是 check) 并添加必要的编译器标志(--cflags 选项)和库/链接器选项(--libs 选项)

希望这对您有所帮助!

关于c - 为检查测试 C 框架构建库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9716704/

相关文章:

autotools - 检查框架示例在运行 './configure' 时给我错误

检查矩阵的第一行和最后一行是否只有负值

c++ - 从 C 应用程序加载的 C++ 插件使用 C++ 库

c - 如何隐藏并打印结构体成员的void指针数组?

c - 如何比较C程序中的字符串

c++ - 用codelite编译。 'make' 无法识别

windows - configure, make, git on windows = how to compile install on windows

c - 制作文件模式 %o :%. c

C 段错误,大小为 4 的读取无效

c - 使用检查在 C 中调试单元测试