在linux脚本上构建gcc

时间:2012-09-19 07:32:46

标签: bash unix gcc build

美好的一天,我在linux上编写用于构建gcc的脚本,我的代码是:

#!/bin/bash

export INSTALLATION_GCC=/opt

cd $INSTALLATION_GCC

tar xjvf gcc-4.7.0.tar.bz2

export srcdir="$INSTALLATION_GCC/gcc-4.7.0"

export objdir="$INSTALLATION_GCC/gcc-bin"

export insdir="$INSTALLATION_GCC/usr/local"

mkdir -p $srcdir

mkdir -p $objdir

mkdir -p $insdir

cd $objdir

$srcdir/configure --prefix=$insdir

make bootstrap

make install

但是当我运行这个脚本时,我会收到错误:

No such file or directoryopt
tar (child): gcc-4.7.0.tar.bz2\r: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
/configure: No such file or directory
'.  Stop. No rule to make target `bootstrap
'.  Stop. No rule to make target `install

为什么cd无法正常工作,如果我执行我的脚本(如果我在交互模式下输入此命令都可以)?在构建和安装gcc之后为什么我的gcc版本没有改变,我怎样才能正确替换旧版本的gcc?

1 个答案:

答案 0 :(得分:0)

我认为我对作为目录名称一部分的退格的评论是相关的:

“这里有一些奇怪的,错误信息没有这样的文件或directoryopt缺少一个空格和/。它看起来像你的代码没有生成此错误消息,你确定$ INSTALLATION_GCC是/ opt with领先/?几乎看起来$ INSTALLATION_GCC的第一个字符是退格。“

我还在其中一条错误消息中发现了gcc-4.7.0.tar.bz2\r\r会产生这些效果。 \r(回车)最常见的不需要的来源是Windows。您是否在Windows上使用记事本等编辑脚本?如果涉及Windows,请使用dos2unix转换脚本。