gpt4 book ai didi

c - 为我的操作系统移植 NewLib : some questions

转载 作者:太空狗 更新时间:2023-10-29 17:13:45 26 4
gpt4 key购买 nike

我正在尝试为我的操作系统移植 NewLib(我正在学习本教程:http://wiki.osdev.org/Porting_Newlib),但我有一些问题。

  • LibGloss 完成并编译后,我究竟什么时候必须使用已创建的 libnosys.a?是什么时候编译我的 main.c?

    mipsel-uknown-elf-gcc main.c -Llibnosys.a`
  • 我的 crt0.c 已经完成。而且我必须“将其链接为第一个对象”。我怎样才能做到这一点?是这样的吗?

    mipsel-uknown-elf-ld crt0.o main.o

感谢您的回答!

最佳答案

作为第一个对象链接可能会像您显示的那样正常工作,但文档确实提到使用链接器脚本并将 crt0.o 添加为 STARTUP()——我不太熟悉链接器脚本,但您可以找到默认的链接器脚本并可能创建它/调整它:

链接脚本的语法:http://wiki.osdev.org/Linker_Scripts

http://sourceware.org/binutils/docs-2.19/ld/Scripts.html#Scripts

The linker always uses a linker script. If you do not supply one yourself, the linker
will use a default script that is compiled into the linker executable. You can use the
`--verbose' command line option to display the default linker script. Certain command
line options, such as `-r' or `-N', will affect the default linker script.

对于始终必须成为链接的一部分的其他系统库,可能也可以这样做。

在命令行全部添加还好,最后有点繁琐。

在您询问之后是否收到任何错误或错误结果?

关于c - 为我的操作系统移植 NewLib : some questions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3434177/

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