我希望能够在我正在使用的嵌入式项目中使用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尝试替换现有类型吗?
鉴于这是我第一次尝试使用我自己没有在项目中编写的代码,我对如何协调这些冲突感到有些困惑。
答案 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
.....