首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用mQuee.h和-lrt配置ceedling

用mQuee.h和-lrt配置ceedling
EN

Stack Overflow用户
提问于 2016-09-30 19:40:14
回答 1查看 644关注 0票数 1

我正在用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编写的,我对它并不熟悉。

所以我的问题是:

  1. -lrt的放置是否真的影响到mq_*()的链接
  2. 对于如何改变-lrt标志的位置有什么想法吗?
EN

回答 1

Stack Overflow用户

发布于 2019-07-01 09:23:39

差不多三年后,也出现了类似的问题。他们在https://github.com/ThrowTheSwitch/Ceedling/issues/136中添加了这个特性,但是使用仍然不容易从文档中理解。我需要包含数学库(在命令末尾需要'-lm‘标志),并以下面的配置部分(特别是system部件)结束:

代码语言:javascript
复制
:libraries:
    :placement: :end
        :flag: "${1} "  # or "-L ${1}" for example
        :common: &common_libraries []
    :system:
         - -lm
    :test:
        - *common_libraries
    :release:
        - *common_libraries

由于某种原因,割让根本没有添加标志,当添加到公域或特定的构建部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39798968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档