7

我正在运行 debian wheezy,想从 GCC 4.7.2 升级到 GCC 4.9.0。

根据这些说明,我安装了libgmp-devlibmpfr-dev并且libmpc-dev(我的包管理器分别给了我版本 2:5.0.5+dfsg-2、3.1.0-5 和 0.9-4)并运行以下命令来编译 gcc(请注意,在我的情况下它是 4.9.0 而不是 4.6.2):

tar xzf gcc-4.6.2.tar.gz
cd gcc-4.6.2
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.6.2/configure --prefix=$HOME/gcc-4.6.2 
make
make install

我现在有一个objdir充满东西的目录,但是 g++ 在哪里,我应该把这个目录放在哪里?

我猜我应该把它移到usr/local我的变量中并添加一些东西PATH,但我不知道究竟是什么,以及如何确保在我的旧 gcc 安装之前搜索它。

4

1 回答 1

7

执行这些命令后(注意--prefix配置选项)

$PWD/../gcc-4.9.0/configure --prefix=$HOME/gcc-4.9.0 
make install

新的 gcc 将安装在$HOME/gcc-4.9.0目录中(里面应该有像bin, lib,这样的子目录share)。

gccwill的完整路径$HOME/gcc-4.9.0/bin/gcc,并且g++(符号链接到gcc)将在此处:$HOME/gcc-4.9.0/bin/g++.

objdir中不能有单独g++的,因为gcc编译器驱动程序实现了多种语言的驱动程序;模式(C 或 C++)的选择基于argv[0](用于运行驱动程序的二进制文件名称:gccg++;此模式也影响链接标志)和源文件扩展名(gcc接受 C 和 C++ 程序作为编译成对象的输入文件)。因此,g++可能会生成为符号链接make install,而存储生成的符号链接的位置是$prefix/bin

编译好GCC并安装到$HOME/gcc-4.9.0目录后,就可以使用了;但默认系统 gcc 不会更新。分布式 gcc 的更新应该通过分布式工具(apt,,dpkg-build等)来完成。Wheezy 的系统范围 gcc 的当前预构建版本是4.7.2, Jessie 和 Sid是4.8.2 ,“实验性”是4.9-2

于 2014-04-26T15:45:40.040 回答