LFS:GCC链接worng

时间:2018-01-16 20:03:23

标签: linux-from-scratch

我被困在当前LFS书的第6.20章。我明白了:

$ readelf -l a.out | grep Requesting                                        
[Requesting program interpreter: /tools/lib64/ld-linux-x86-64.so.2]

而不是所需的:

[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]

本章中的其他测试都成功了。

这是我第二次通过整本书非常小心,上次我得到了相同的结果。会有一些错误吗?

对于指导它只是说"最可能的原因是specs文件调整出了问题。"。这是对6.10的引用,它表示"最好是直观地检查specs文件以验证实际进行的预期更改"但是没有指导这些预期的变化是什么。但是在第二轮比赛中我确实检查了/tools/lib/gcc/x86_64-pc-linux-gnu/7.2.0/specs,没有提及"工具"并且提到了/ usr路径。

1 个答案:

答案 0 :(得分:2)

我似乎通过为新编译器制作另一个specs文件来解决它:

gcc -dumpspecs | sed -e 's@/tools@@g' > `dirname $(gcc --print-libgcc-file-name)`/specs

之后,我重做测试:

echo 'int main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

一切都很好。