【发布时间】:2021-12-29 13:01:35
【问题描述】:
我目前正在尝试构建一个交叉编译器工具链来为 aarch64 编译 linux 内核,并且在我尝试构建 libgcc 之前一切正常。
运行make all-target-libgcc 时,我收到错误/opt/cross/arm-unknown-linux-gnueabi/bin/ld: cannot find crti.o: no such file or directory。 “crtn.o”和“-lc”也是如此。
我在 /opt/cross/lib 目录中搜索了这些文件,但找不到它们,但我确实在 gcc 源目录(crti.S, ....)中发现了未组装的 .S 文件。
二进制文件也存在于 /usr/lib 中,但我认为这无关紧要,因为它们是 x86-64。
我现在想知道的是为什么 gcc 源目录(版本 10.1.x)中的 .S 文件没有被组装成二进制文件,以及我该如何改变它。
提前感谢您的帮助
PS:我在这里找到了关于 crti.o 丢失的堆栈溢出的类似帖子,但这没有帮助。
【问题讨论】:
-
我尝试用
/opt/cross/bin/arm-unknown-linux-gnueabi-as /.../aarch64/crti.S组装它,但出现错误“错误:错误指令`type(_init)'” -
如何决定一个包,当“文件”已知时:使用
apt-file search crti.o.....或使用在线搜索packages.ubuntu.com/…
标签: linux gcc cross-compiling arm64