我正在用C编写一个项目的单元测试,使用把开关扔了/Unity/CMock组合作为单元测试框架。
我遇到了一个有趣的难题,在我的单元测试中使用mqueue.h。当测试编译时,我得到gcc链接器未定义的mq_open()、mq_close()等引用错误。
据我所知,基于这一发现 -lrt旗子需要放在gcc命令的末尾--在列出源(和可执行文件?) gcc test_foo.c -lrt之后。不幸的是,写ceedling是为了将标志放在命令:gcc -lrt test_foo.c之后,我无法找到改变顺序的方法。
与Ceedling一起提供的文档仅涉及如何向gcc命令中添加旗子,而不是如何更改命令。我试过深入研究Ceedling的大量源代码,但它是用Ruby编写的,我对它并不熟悉。
所以我的问题是:
发布于 2019-07-01 09:23:39
差不多三年后,也出现了类似的问题。他们在https://github.com/ThrowTheSwitch/Ceedling/issues/136中添加了这个特性,但是使用仍然不容易从文档中理解。我需要包含数学库(在命令末尾需要'-lm‘标志),并以下面的配置部分(特别是system部件)结束:
:libraries:
:placement: :end
:flag: "${1} " # or "-L ${1}" for example
:common: &common_libraries []
:system:
- -lm
:test:
- *common_libraries
:release:
- *common_libraries由于某种原因,割让根本没有添加标志,当添加到公域或特定的构建部分。
https://stackoverflow.com/questions/39798968
复制相似问题