6

我想为startfileand endfile:crt1.o和. 指定 GCCcrti.o的搜索目录crtn.o。将命令行传递-B给 GCC 驱动程序可以工作,但不方便。如何修改规范文件 ( lib/gcc/x86_64-unknown-linux-gnu/4.9.2/specs) 以指定搜索路径startfile

我尝试将-B选项添加到startfile规范并得到错误: ld: unrecognized option '-B/gsc/btl/linuxbrew/lib'

然后我尝试将-B选项添加到cc1规范并得到错误: cc1: error: command line option '-B/gsc/btl/linuxbrew/lib' is valid for the driver but not for C

如果无法通过specs文件执行此操作,是否有 GCC 的环境变量或配置选项可以实现相同的目标?

我已经glibc在我的主目录中安装了最新版本。一切都很好。我已经修改了specs文件以链接到 的新版本,但它仍然链接到和中的glibc旧系统版本。/usrstartfileendfile

这是邮件列表中未回答的问题。gcc-help这是一个相关的 Linuxbrew 错误,gfortran 被独立的 Linuxbrew 破坏,以及一个建议的修复,gcc,binutils:链接到 Cellar 而不是系统库

谢谢,
肖恩

4

2 回答 2

1

根据https://wiki.debian.org/Multiarch/LibraryPathOverview,gcc 会查找诸如crt1.oin之类的启动文件$(sysroot)/lib,因此您可以--sysroot在运行 gcc 时指定选项,或者使用--with-sysroot.

于 2018-11-15T22:07:07.287 回答
1

您可以在 specs 文件的*startfile:and部分中使用绝对路径,而不是默认的相对路径。*endfile:这将覆盖 GCC 对默认位置的选择。

于 2019-02-09T17:29:33.713 回答