我正在运行debian wheezy并希望从GCC 4.7.2升级到GCC 4.9.0。
根据these instructions,我安装了libgmp-dev
,libmpfr-dev
和libmpc-dev
(我的包经理给了我版本2:5.0.5 + dfsg-2,1.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之前搜索它安装。
答案 0 :(得分: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
等子目录。
gcc
的完整路径为$HOME/gcc-4.9.0/bin/gcc
,g++
(符号链接为gcc
)的路径为:$HOME/gcc-4.9.0/bin/g++
。
objdir中没有单独的g++
,因为gcc
编译器驱动程序实现了多种语言的驱动程序;模式(C或C ++)是基于argv[0]
(二进制名称,用于运行驱动程序:gcc
或g++
;此模式也影响链接标志)和源代码选择的文件扩展名(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。