【问题标题】:Compiling kernel, ld doesn't have the -T option编译内核,ld没有-T选项
【发布时间】:2013-06-08 00:02:02
【问题描述】:

我为组装、编译和链接内核制作了一个自定义 bash 脚本,但是当它到达链接行时,我遇到了错误(见下文)。我在 OSX 上运行这个,最新版本所以我不知道为什么。有什么建议吗?

ld:未知选项:-T

我的脚本:

echo Now assembling, compiling, and linking your kernel:
nasm -f aout -o start.o start.asm
gcc -Wall -O -fstrength-reduce -fomit-frame-pointer -finline-functions -nostdinc -fno-       builtin -I./include -c -o main.o main.c

ld -T link.ld -o kernel.bin start.o
echo Done!

【问题讨论】:

  • 我建议您提供更多信息。例如你的构建脚本。
  • 哎呀,添加了。谢谢:P
  • 您认为-T 选项应该做什么?我在 man 中没有看到这样的选项。
  • ld -T 是用来运行链接脚本的,但似乎 ld 没有那个选项了

标签: macos bash build kernel


【解决方案1】:

在您尝试创建自己的构建脚本之前,您是否设法让 OSX 内核使用自己的脚本进行构建? Apple 的一位内核工程师This site 告诉您它是如何完成的。

【讨论】:

  • 因为这不是xnu内核,所以这是我自己的。
  • 我怀疑您正在尝试构建 ELF 内核? OSX 上的 binutils 和 gcc 生成 Mach-O 二进制文件。您需要构建自己的自定义 GCC 工具链以交叉编译到 Linux/ELF ABI。
猜你喜欢
  • 1970-01-01
  • 2017-03-19
  • 1970-01-01
  • 2021-10-23
  • 2021-01-14
  • 1970-01-01
  • 2011-06-05
  • 1970-01-01
  • 2022-08-23
相关资源
最近更新 更多