2011-06-16 118 views
1

我想在我的ubuntu 9.10(通过virtualbox)安装gcc 4.6(主要用于支持C++ 0x)。我提到previous questions,但我收到了一个不同的错误。在ubuntu上安装gcc 4.6的问题

我指的是this link for the installation。现在,我已经完成了,直到步骤./gcc-xx/configure ...。虽然它给出了一些软件包相关的错误。这主要是由于该make也与下面的错误失败:

编译/ gengtype.o:在功能 adjust_field_rtx_def': /home/milind/ubuntu_shared/GCC/build/gcc/../../gcc-4.6-20110610/gcc/gengtype.c:978: undefined reference to lexer_line” /home/milind/ubuntu_shared/GCC/build/gcc/../../ GCC-4.6-20110610/GCC/gengtype.c里:1032: 未定义参考lexer_line' /home/milind/ubuntu_shared/GCC/build/gcc/../../gcc-4.6-20110610/gcc/gengtype.c:1042: undefined reference to lexer_line” ...............

现在,这是给我一个困难时期搞清楚,因为我已经安装了flex/bison最新版本。我在互联网上搜索了2天,但几乎没有运气。任何帮助将非常感激。另外请注意,我已经在/usr/bin/gcc中安装了gcc 4.4,并且已将我的主目录本地文件夹中的gcc 4.6 tar解压缩。

[注:我也可以安装ubuntu 11.10(它有gcc 4.6)作为最后的手段。但我不知道它的.iso图像是否可用。]

回答

2

我弄明白了。我遵循以下程序: [注意:如果您未以root身份登录,请运行所有命令和sudo [请注意:。例如sudo ls -ltr; sudo make install;

  1. 作为链接在我 问题中提及,下载gcc4.6...tar 文件在一个临时的地方
  2. 现在寻找到当前 gcc的存放处。例如我之前的 gcc4.4存储在 /usr/lib/gcc/i486-linux-gnu中。这 有一个名为4.44.4.1
  3. 文件夹,创建一个名为4.6文件夹(或 ​​等),并把该 .tar文件里面。解压链接中显示的 文件。
  4. 请按照 链接中的所有步骤操作。使用nohup <command> &至 跟踪日志。即nohup make clean all &其次tail -f nohup.out
  5. 如果出现一些错误,这意味着一些 包缺失。大多数这些 包将出现在您的 当前gcc版本。你可以在 自己安装它们。例如,对于 示例,在我的情况下zlib是 缺失。我跑sudo apt-get install zlib1g-dev libssl-dev和它的工作 罚款。否则,从互联网下载并安装它。您可以使用type gcc-4.6进行检查。在我的情况下,它显示它存储为 /usr/local/bin/g++-4.6
  6. 要么你可以使用相同的路径 编译,或者你可以把alias在 你的bash/tcsh/ksh。例如 /usr/local/bin/g++-4.6 -std=c++0x -Wall test.cpp
1

FWIW Debian测试和不稳定的版本都有gcc-4.6作为标准软件包。因此,您可以简单地将该发行版安装在virtualbox中,或者,正如我在家中的Ubuntu 11.04服务器上通过kvm所做的那样。在过去,我也习惯使用dchroot构建环境。

在启动板上还可能有预打包的gcc-4.6二进制文件。

+0

+1,谢谢。但是,没有办法克服这些弹性或野牛错误?有什么和修复它们的路径有关吗?也就是说,我应该从特定的路径或者类似的东西中配置'./configure' gcc? – iammilind 2011-06-17 02:54:02

+0

通常有。我有时会从Debian软件包源中构建本地Ubuntu软件包。但这是一个巨大的挑战 - 你可能需要一个新的libc6以及所有这些 - 那么为什么不把这个发行版虚拟成一个设备呢? – 2011-06-17 03:01:13