我被困在当前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路径。
答案 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'
一切都很好。