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