首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将定义传递给CMock

如何将定义传递给CMock
EN

Stack Overflow用户
提问于 2016-05-06 17:35:25
回答 2查看 4.4K关注 0票数 5

我对TDD有点陌生,虽然我已经使用C了一段时间。因此,我使用ceedling来测试我的嵌入式项目。

我可以在gcc的rake test:all,但我现在试图移动到一个嵌入式目标模拟器。我正在通过'project.yml‘文件指定我的交叉编译器、链接器等。

当我rake test:all时,当“编译cmock.c”(其他几个文件编译时没有问题)时会出现一个错误:

< path_to_cmock >/cmock.c:17:31:错误:数组'CMock_Guts_Buffer‘的大小太大了

在这之后还有其他的错误,但这是一个启动他们的错误。

当我去cmock.c时,我会在文件的顶部看到以下内容:

代码语言:javascript
复制
#ifdef CMOCK_MEM_DYNAMIC
static unsigned char*         CMock_Guts_Buffer = NULL;
static CMOCK_MEM_INDEX_TYPE   CMock_Guts_BufferSize = CMOCK_MEM_ALIGN_SIZE;
static CMOCK_MEM_INDEX_TYPE   CMock_Guts_FreePtr;
#else
static unsigned char          CMock_Guts_Buffer[CMOCK_MEM_SIZE + CMOCK_MEM_ALIGN_SIZE];
static CMOCK_MEM_INDEX_TYPE   CMock_Guts_BufferSize = CMOCK_MEM_SIZE + CMOCK_MEM_ALIGN_SIZE;
static CMOCK_MEM_INDEX_TYPE   CMock_Guts_FreePtr;
#endif

太好了,所以我只需要找出这些声明的位置。我做了个短信搜索,结果发现它们没有在任何地方声明.因此,我怀疑它们来自于割让内部的违约。

我找到了CMOCK的文档,在“编译选项”下,

许多#defines也存在用于自定义cmock体验.

它接着列出了我在源代码中找到的#定义,但是它没有说明在哪里找到它们。我尝试使用适当的定义创建一个包含文件,并在没有运气的情况下通过'project.yml‘传递包含文件。

我怀疑答案是难以置信的简单,只是没有概述我搜索过的任何地方。谢谢您抽时间见我,

EN

Stack Overflow用户

回答已采纳

发布于 2016-05-06 18:11:09

当然,答案是盯着我的脸。

在“project.yml”文件中,有一个称为“定义”的部分。默认定义为:

代码语言:javascript
复制
:defines:
  # in order to add common defines:
  #  1) remove the trailing [] from the :common: section
  #  2) add entries to the :common: section (e.g. :test: has TEST defined)
  :commmon: &common_defines []
  :test:
    - *common_defines
    - TEST
  :test_preprocess:
    - *common_defines
    - TEST

我只是为我的目标添加了定义:

代码语言:javascript
复制
:defines:
  # in order to add common defines:
  #  1) remove the trailing [] from the :common: section
  #  2) add entries to the :common: section (e.g. :test: has TEST defined)
  :commmon: &common_defines
    - __dsPIC33EP32MC204__
    - UNITY_INT_WIDTH=16
    - CMOCK_MEM_INDEX_TYPE=uint16_t
    - CMOCK_MEM_PTR_AS_INT=uint16_t
    - CMOCK_MEM_ALIGN=1
    - CMOCK_MEM_SIZE=1024
    - CMOCK_MEM_STATIC
  :test:
    - *common_defines
    - TEST
  :test_preprocess:
    - *common_defines
    - TEST
票数 7
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37078332

复制
相关文章

相似问题

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