|
发表于 2008-4-15 18:56:38
|
显示全部楼层
Post by longkz;1838563
SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs &&
gcc -dumpspecs > $SPECFILE &&
sed 's@^/lib/ld-linux.so.2@/tools&@g' $SPECFILE > tempspecfile &&
mv -vf tempspecfile $SPECFILE &&
unset SPECFILE
在这个命令之后就可以发现这个文件:
/mnt/lfs/tools/bin/../lib/gcc/i686-pc-linux-gnu/
4.0.3/specs
你应该理解这些命令的含义:
SPECFILE=`dirname $(gcc -print-libgcc-file-name)`/specs
这条命令调用dirname $(gcc -print-libgc-file-name)并获得其结果赋给SPECFILE变量。
dirname命令用来从带有文件名的完整路径中提取目录名。gcc -print-libgcc-file-name的结果是gcc所引用的libgcc的完整路径名。
因此,SPEC的结果就是把libgcc更换为specs之后所得的路径名。注意此时specs文件是否存在并不影响命令执行。
gcc -dumpspecs > $SPECFILE
这条命令使gcc把内置的specs保存在SPECFILE变量所指文件里。因此specs文件便是这个时候产生的。 |
|