2

我被困在当前 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]

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

这是我第二次非常小心地阅读整本书,上次我得到了同样的结果。会不会有什么错误?

作为指导,它只是说“最可能的原因是规格文件调整出了问题。”。这是对 6.10 的引用,其中说“最好目视检查规格文件以验证实际进行了预期的更改”,但没有关于这些预期更改是什么的指导。但是在第二轮中,我确实检查了 /tools/lib/gcc/x86_64-pc-linux-gnu/7.2.0/specs 没有提到“工具”并且提到了 /usr 路径。

4

1 回答 1

3

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

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'

一切都很好。

于 2018-01-16T20:17:15.810 回答