gpt4 book ai didi

gcc - 交叉编译时缺少 crt1 和 crti

转载 作者:行者123 更新时间:2023-12-03 17:20:30 26 4
gpt4 key购买 nike

我正在尝试构建一个基于 GCC4.5 和 newlib 的交叉编译工具链,并启用了黄金和链接时间优化。 GCC 编译正常,但没有生成 crt1.o 或 crti.o 文件。因此,当我尝试使用编译器构建 Newlib 时,它会提示以下消息:

ld: error: cannot open crti.o: No such file or directory
ld: error: cannot open crtn.o: No such file or directory
ld: error: cannot find -lc

在安装 GCC4.5 的目录中搜索名为 crt* 的文件时,我得到以下结果:
find ../../../tooltarget/ -name "crt*" -print #(result modified to consume less space)
crtprec80.o, crtend.o, crtfastmath.o, crtbegin.o, crtendS.o, crtprec32.o, crtbeginS.o, crtbeginT.o, crtprec64.o

从 GCC 规范来看,似乎 gcc 需要 crtbegin.o 和 crti.o 文件,但只有其中一个可用。
*startfile:                                       
%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}} crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o
%s;:crtbegin.o%s}

以下是我在编译 GCC 时使用的标志:
--prefix=${TTP}/usr         --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=x86_64-awn-linux-gnu
--with-gmp=${TTP}/usr --with-mpc=${TTP}/usr
--with-mpfr=${TTP}/usr --with-libelf=${TTP}/usr
--enable-languages=c --enable-lto
--disable-nls --disable-shared
--disable-multilib --disable-decimal-float
--disable-libmudflap --disable-libssp
--disable-libgomp --disable-threads
--without-headers --with-newlib
--with-build-sysroot=${TTP} --with-build-time-tools=${TTP}/usr/bin

我确定这是由于我错误地配置了 GCC,还是“东西”根本无法以这种方式工作,或者文件 crti.o 是否应该来自其他地方。

提前致谢

艾伦·W·尼尔森

最佳答案

一些 crt*文件不是来自编译器,而是来自 C 库。我怀疑您的 crt1.o 就是这种情况和 crti.o .

关于gcc - 交叉编译时缺少 crt1 和 crti,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3299511/

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