0

美好的一天,我编写了在 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

进行安装

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

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?

4

1 回答 1

0

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

“这里有些奇怪,错误消息 No such file or directoryopt is missing a space and a /. 在我看来您的代码没有生成此错误消息,您确定 $INSTALLATION_GCC 是 /opt 与前导 / ? 几乎看起来 $INSTALLATION_GCC 的第一个字符是退格键。”

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

于 2012-09-19T08:08:19.667 回答