gpt4 book ai didi

gcc - 在不插入对 memcpy 的调用的情况下让 GCC 进行编译

转载 作者:行者123 更新时间:2023-12-04 01:47:47 27 4
gpt4 key购买 nike

我目前正在使用 GCC 4.5.3,为 PowerPC 440 编译,并且正在编译一些不需要 libc 的代码。我没有对 memcpy() 的任何直接调用,但编译器似乎在构建过程中插入了一个。

有像 -nostdlib、-nostartfiles、-nodefaultlibs 这样的链接器选项,但我无法使用它们,因为我没有进行链接阶段。我只会编译。像这样:

$ powerpc-440-eabi-gcc -O2 -g -c -o output.o input.c

如果我用 nm 检查 output.o,我会看到对 memcpy 的引用:
$ powerpc-440-eabi-nm output.o | grep memcpy
U memcpy
$

GCC 手册页清楚地说明了如何使用链接器删除对 memcpy 和其他 libc 调用的调用,但我不希望编译器首先插入它们,因为我使用的是完全不同的链接器(不是 GNU 的 ld ,并且它不知道 libc)。

感谢您提供的任何帮助。

最佳答案

您需要使用 -fno-builtin 禁用该优化。我在尝试为 C 库编译 memcpy 时遇到过这个问题。它自称。哎呀!

关于gcc - 在不插入对 memcpy 的调用的情况下让 GCC 进行编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6410595/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com