gpt4 book ai didi

gcc - 从 gcc4.7.x 中删除 crt0.o 背后的基本原理是什么?

转载 作者:行者123 更新时间:2023-12-04 15:35:00 24 4
gpt4 key购买 nike

我正在尝试升级到 yagarto4.7.2 (另一个 GNU ARM 工具链,对于那些想知道的人),它是 gcc 和 binutils,移植到 Windows。但是,尝试编译一个简单的 Hello World 会产生:

c:/yagarto-20121222/bin/../lib/gcc/arm-none-eabi/4.7.2/../../../../arm-none-eabi
/bin/ld.exe: cannot find crt0.o: No such file or directory
collect2.exe: error: ld returned 1 exit status

现在,在这个 forum很明显,这是启动初始化库,在 gcc4.6.x 之后被删除。提出了两种解决方案:
  • 使用 -nostartfiles 编译
  • 将 crt0.o 从 4.6.x 复制到 4.7.x 文件夹

  • 对于生产代码来说,两者看起来都很脏而且 Not Acceptable 。有谁知道 为什么这个库被删除了,它现在等价的是什么?

    最佳答案

    crt0.o 派生自操作系统提供的 crt0.s。在裸机设置的情况下,此文件必须由实现提供。它包含启动和退出代码,例如用于将 .bss 归零。

    关于gcc - 从 gcc4.7.x 中删除 crt0.o 背后的基本原理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16981704/

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