在Ubuntu下安装GCC 4.5遇到问题

4
我尝试在Ubuntu 10.04上安装gcc 4.5,但失败了。这是一个编译错误,我不知道如何解决。有人成功地在Ubuntu上安装了最新的gcc吗?以下是我的步骤和错误消息,我想知道问题出在哪里...
步骤1:下载这些文件:
gcc-core-4.5.0.tar.gz
gcc-g++-4.5.0.tar.gz
gmp-4.3.2.tar.bz2
mpc-0.8.1.tar.gz
mpfr-2.4.2.tar.gz

步骤2:解压缩上述文件。

步骤3:将gmp,mpc,mpfr移动到gcc-4.5.0/目录中。

mv gmp-4.3.2  gcc-4.5.0/gmp
mv mpc-0.8.1  gcc-4.5.0/mpc
mv mpfr-2.4.2 gcc-4.5.0/mpfr

步骤4:进入gcc-4.5.0目录并进行配置:
sudo ./configure

步骤5:编译和安装
sudo make
sudo make install

第1到4步都没问题,我能成功配置。但是当我尝试编译时,会出现以下错误信息,我无法确定问题所在。我应该将名称从“gcc 4.5”更改为“gcc”吗?这有点奇怪,我们需要自己做这件事。安装过程中我是否漏掉了什么?
xxx@xxx-laptop:/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0$ sudo make
[sudo] password for xxx: 
[ -f stage_final ] || echo stage3 > stage_final
/bin/bash: line 2: test: /media/Data/Tool/linux/gcc: binary operator expected
/bin/bash: /media/Data/Tool/linux/gcc: No such file or directory
make[1]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[2]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[3]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
rm -f stage_current
make[3]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[2]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[2]: Entering directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
Configuring stage 1 in host-x86_64-unknown-linux-gnu/intl
/bin/bash: /media/Data/Tool/linux/gcc: No such file or directory
make[2]: *** [configure-stage1-intl] Error 127
make[2]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/media/Data/Tool/linux/gcc 4.5/gcc-4.5.0'
make: *** [all] Error 2

1
你不应该运行 sudo make。这会留下权限不正确的文件。 - Ignacio Vazquez-Abrams
我尝试了不使用sudo来编译(只执行"./configure"和"make"),但错误信息仍然是一样的。而且我不明白为什么它要寻找路径“gcc”,而不是“gcc 4.5”。 - Claire Huang
我从来没有使用 "sudo make" 出现过问题 - 我认为安装过程会自动设置权限(当然,如果您手动将二进制文件、库等复制到位,可能会出现问题,但 OP 并不打算这样做)。 - Mike Dinsdale
1个回答

5

在你的路径中使用空格可能不是一个好主意 - 这种情况比较罕见,很容易搞乱那些没有专门设计处理它的shell脚本(这是一个糟糕的组合!)

另一个潜在的问题是你正在gcc源目录内运行configure - 这不被推荐(并且在至少一个gcc 4版本上对我来说根本不起作用)。相反,创建一个空的构建目录,与源目录平行,这样你就有了类似这样的东西:

gcc 4.5            <- but might want to avoid the space
  gcc-4.5.0
    ...
  build

然后进入 build 目录并运行。
../gcc-4.5.0/configure

您可能还需要从一个新解压的源代码目录开始,因为之前失败的构建可能已经破坏了它。


非常感谢!我现在可以编译它了 :) 我认为主要问题是路径中的空格。顺便问一下,我很好奇为什么建议使用另一个文件夹来运行配置。我按照你说的做了,如果不太复杂,你能解释一下原因吗? - Claire Huang
说实话,我不知道为什么在源目录中进行构建会导致它崩溃 - 可能是构建过程覆盖了源分发中的文件或创建了一个进入PATH并搞乱了某些东西的新文件...但我只是猜测 :) 他们甚至可能已经为4.5修复了它,但他们仍然建议不要在gcc网站上冒险尝试(当我遇到这个问题时,构建失败需要几个小时,这非常令人恼火:)) - Mike Dinsdale
我的理解是开发人员构建源码外的代码;因此,他们建议您也这样做,因为在源码内构建不太可靠且构建过程非常复杂。每个人都有自己的喜好,但我更喜欢构建源码外的代码,因为它可以将构建产物与源代码区分开来。对于那些不从事开发工作的人来说,这可能不是一个大问题。 - ejgottl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接