在嵌入式项目中使用talloc

时间:2013-01-18 23:56:52

标签: c compiler-errors embedded

我希望能够在我正在使用的嵌入式项目中使用talloc,但无法确定如何将其合并到我的开发环境中。有问题的环境是供应商提供的使用ARM GCC 4.4.1的Windows IDE,我使用它来定位ARM7设备。

我已经到了编译器抱怨冲突类型的阶段:

In file included from .\talloc-2.0.8\talloc.c:33:
.\talloc-2.0.8\lib\replace/replace.h:626: error: conflicting types for 'ptrdiff_t'
c:\program files (x86)\cypress\psoc creator\2.2\psoc creator\import\gnu_cs\arm\4.4.1\bin\../lib/gcc/arm-none-eabi/4.4.1/include/stddef.h:149: note: previous declaration of 'ptrdiff_t' was here
.\talloc-2.0.8\lib\replace/replace.h:848: error: conflicting types for 'useconds_t'
c:\program files (x86)\cypress\psoc creator\2.2\psoc creator\import\gnu_cs\arm\4.4.1\bin\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/sys/types.h:253: note: previous declaration of 'useconds_t' was here
.\talloc-2.0.8\talloc.c:123: error: expected specifier-qualifier-list before 'uint8_t'

我注意到replace.h尝试包含一个名为config.h的文件,该文件在talloc源代码树中不存在 - 我通过使用该名称创建一个空白文件来解决这个问题。是否使用config.h来告知talloc系统已经定义了哪些功能?这只是使用#define指令来阻止replace.h尝试替换现有类型吗?

鉴于这是我第一次尝试使用我自己没有在项目中编写的代码,我对如何协调这些冲突感到有些困惑。

1 个答案:

答案 0 :(得分:2)

应自动生成

config.h。对于tmalloc,它由waf(基于python的构建系统)完成。

$ python ./buildtools/bin/waf configure
Checking for program gcc or cc           : /usr/lib/ccache/gcc 
Checking for program cpp                 : /usr/bin/cpp 
Checking for program ar                  : /usr/bin/ar 
Checking for program ranlib              : /usr/bin/ranlib 
Checking for gcc                         : ok  
Checking for program git                 : /usr/bin/git 
Check for -MD                            : yes 
....
$ python ./buildtools/bin/waf build
.....