防止在libc.a中链接mallocr.o文件

时间:2014-05-15 16:20:28

标签: c gcc malloc linker-errors multiple-definition-error

这是针对我的公司的,所以我对过于具体而感到谨慎,但我会尝试。

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

我的构建错误之一是malloc / free函数的多重定义问题。 cmd窗口会显示malloc.omallocr.o中存在这些定义的错误。这两个都在libc.a之内。我被告知mallocr.o中的“r”是为了重入。我也被告知我们的平台不支持重入。

我正在尝试通过阻止mallocr.olibc.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

0 个答案:

没有答案