编译gcc时关于工具链的调整


例如:把链接器指向/tools 目录中的版本
SPECS=`dirname $(gcc -print-libgcc-file-name)`/specs
gcc -dumpspecs | sed \
  -e 's@/lib\(64\)\?/ld@/tools&@g' \
  -e "/^\*cpp:$/{n;s,$, -isystem /tools/include,}" > $SPECS
echo "New specs file is: $SPECS"
unset SPECS

再设置成默认值
gcc -dumpspecs | sed -e 's@/tools@@g' \
    -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
    -e '/\*cpp:/{n;s@$@ -isystem /usr/include@}' > \
    `dirname $(gcc --print-libgcc-file-name)`/specs



验证GCC 工作是否正常

echo "int main(){}" > dummy.c
gcc -v -Wl,--verbose &>dummy.log dummy.c

验证dynamic linker
readelf -l a.out | grep ': /lib'

验证 startfiles

grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log

验证 search header files

grep -B2 '^ /usr/include' dummy.log

验证 search libraries path

grep 'SEARCH.*/usr/lib' dummy.log | sed 's|; |\n|g'

验证 correct libc

grep "/lib.*/libc.so.6 " dummy.log

验证 使用 correct dynamic linker

grep "found" dummy.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值