1

这是为我的公司准备的,所以我担心过于具体,但我会尝试。

我正在尝试向我们的平台添加对某些现有 ANSI C 代码的支持。我正在使用 GCC 4.7.2 以及 GNU 链接器。我们使用 newlib 的一部分,但也使用其他一些 C 库,特别是libc.a. 这样做的最终目标是获取一个 EXE 或 ELF 映像(这是针对 PowerPC 架构的微)放入微的 RAM 中。这是在 Windows XP 上完成的。我只是使用批处理文件,而不是构建环境或工具链。

我的构建错误之一是 malloc/free 函数的多重定义问题。cmd 窗口吐出错误,即在malloc.o和中都有这些定义mallocr.o。这两者都在libc.a. 有人告诉我,“r”mallocr.o是用于重入的。我还被告知我们的平台不支持重入。

我试图通过阻止mallocr.o从内部链接来解决此错误libc.a。这是我迷路的部分,我不知道该怎么做。谷歌没有找到任何有用的东西,我还没有在这个网站上找到一个可以回答我的问题的问题。我不知道这是否可能。

这个问题中确实没有具体的代码片段。以下是来自 cmd 窗口的错误。我已经删除了我不愿意分享的公司特定内容。

c:\***\platform\2_2_0_r2013-2_x86-32\tools\gcc_4_7_2\ppc\bin\..\powerpc-eabi\lib\libc.a(mallocr.o): In function `free':
mallocr.c:(.text+0x19c): multiple definition of `free'
c:\***\platform\2_2_0_r2013-2_x86-32\tools\gcc_4_7_2\ppc\bin\..\powerpc-eabi\lib\libc.a(malloc.o):malloc.c:(.text+0x28): first defined here
c:\***\platform\2_2_0_r2013-2_x86-32\tools\gcc_4_7_2\ppc\bin\..\powerpc-eabi\lib\libc.a(mallocr.o): In function `malloc':
mallocr.c:(.text+0x468): multiple definition of `malloc'
c:\***\platform\2_2_0_r2013-2_x86-32\tools\gcc_4_7_2\ppc\bin\..\powerpc-eabi\lib\libc.a(malloc.o):malloc.c:(.text+0x0): first defined here
4

0 回答 0