1

我希望能够在我正在处理的嵌入式项目中使用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 尝试替换现有类型的问题吗?

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

4

1 回答 1

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
.....
于 2013-01-19T00:08:03.237 回答