我正在使用Throw The Switch 的 Ceedling /Unity/CMock 组合作为单元测试框架为 C 语言项目编写单元测试。
我遇到了一个有趣的困境,我mqueue.h
在其中一个单元测试中使用。当测试编译时,我得到 gcc 链接器未定义的引用错误mq_open()
,mq_close()
等等。
据我了解,基于此发现, -lrt 标志需要放在 gcc 命令的末尾 - 在列出源(和可执行文件?)之后gcc test_foo.c -lrt
。不幸的是, ceedling 被写在 command: 之后放置标志gcc -lrt test_foo.c
,我找不到改变顺序的方法。
Ceedling 提供的文档仅涉及如何向 gcc 命令添加标志,而不是如何更改顺序。我试过在 Ceedling 的大量源代码中四处寻找,但它是用我不熟悉的 Ruby 编写的。
所以我的问题是:
- -lrt 的放置是否真的影响 mq_*() 的链接
- 关于如何更改 -lrt 标志的位置的任何想法?