我想为startfile
指定GCC的搜索目录
endfile
:crt1.o
,crti.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
,但它仍然链接/usr
startfile
中的旧系统版本}和endfile
。
这是gcc-help
邮件列表中的the unanswered question。这是一个相关的Linuxbrew错误gfortran is broken with stand alone Linuxbrew,以及一个建议的修补程序,gcc, binutils: link to Cellar instead of system libs。
谢谢,
肖恩
答案 0 :(得分:1)
根据https://wiki.debian.org/Multiarch/LibraryPathOverview,gcc将在crt1.o
中查找诸如$(sysroot)/lib
之类的启动文件,因此您可以在运行gcc时指定--sysroot
选项,或使用以下命令编译gcc --with-sysroot
。
答案 1 :(得分:1)
您可以在specs文件的*startfile:
和*endfile:
部分中使用绝对路径,而不是默认的相对路径。这将覆盖GCC选择的默认位置。