step1: 下载源码, 将如下文件下载(保存的路径是:下载)
(1)gcc-6.2.0.tar.gz
(2)编译安装GCC所需要的依赖包:gmp-6.1.2.tar.bz2、mpfr-4.0.1.tar.bz2、mpc-1.1.0.tar.gz
[上述几个打包文件可从库文件下载]
step2:开始安装下载的文件包:安装依赖包,安装顺序gmp 、mpfr、mpc
(1)安装gmp
ctrl+alt+t打开终端
cd 下载 [进入"下载"文件夹]
tar -xvf gmp-6.1.2.tar.bz2 [接解压缩包]
cd gmp-6.1.2[ 进入“gmp-6.1.2”文件夹]
mkdir build [ 在“gmp-6.1.2”文件夹下创建“build”文件夹]
cd build [ 进入“ build” 文件夹]
../configure --prefix=/usr/local/gmp-6.1.2 --build=x86_64-linux-gnu [1、前提在/usr/local/路径下,创建文件夹gmp-6.1.2。2、--prefix=/usr/local/gmp-6.1.2指定安装路径。3、--build指定软件安装的系统平台,如果没有指定,默认值将是‘-host’选项的值 http://www.jb51.net/LINUXjishu/363271.html]
make [ make命令会找到当前目录的makefile进行编译,在执行这一步的时候出错了:configure:error:no usable m4 in$path or /user/5bin 缺少M4文件,需要安装:sudo apt-get install m4]
make check [测试makefile的流程]
sudo make install [安装]
(2)安装mpfr
ctrl+alt+t
cd 下载
tar -xvf mpfr-4.0.1.tar.bz2
cd mpfr-4.0.1
mkdir build
cd build
../configure --prefix=/usr/local/mpfr-4.0.1 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2 [ 由于mpfr依赖gmp 库,所以在configure时,需要设置好gmp库所在的位置,供安装mpfr库时使用]
make
make check
sudo make install
(3)安装mpc
ctrl+alt+t
cd 下载
tar -xvf mpc-1.1.0.tar.gz
cd mpc-1.1.0
mkdir build
cd build
../configure --prefix=/usr/local/mpc-1.1.0 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1
make
make check
sudo make install
备注:如果不安装依赖库,在GCC configure配置的时候,会出现错误 configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
step3:安装GCC
ctrl+alt+t打开终端
cd 下载 [进入"下载"文件夹]
tar -xvf gcc-6.2.0.tar.gz [接解压缩包]
cd gcc-6.2.0 [ 进入“gcc-6.2.0”文件夹]
mkdir build [ 在“gcc-6.2.0”文件夹下创建“build”文件夹]
cd build [ 进入“ build” 文件夹]
../configure --prefix=/usr/local/gcc-6.2.0 --build=x86_64-linux-gnu --with-gmp=/usr/local/gmp-6.1.2 --with-mpfr=/usr/local/mpfr-4.0.1 --with-mpc=/usr/local/mpc-1.1.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib --program-suffix=-6.2.0 [1、前提在/usr/local/路径下,创建文件夹gcc-6.2.0。2、--program-suffix=-6.2.0 指定将被加到所安装程序的名字上的后缀 我安装时直接copy网上教程--program-suffix=-4.7最后查看/usr/local/gcc-6.2.0/bin/时 ,都是gcc-4.7,g++-4.7等,下晕我了,我都怀疑自己下载的包有问题。附上详细链接https://blog.csdn.net/zjt289198457/article/details/6918656 ]
make [ make命令会找到当前目录的makefile进行编译]
[编译了10+分钟,就出错了,没有截图,网搜贴一下问题error while loading shared libraries: libmpc.so.6: cannot open shared object file: No such file or directory,或者config.log中conftest.c:10:21: fatal error: isl/ctx.h: No such file or directory isl/schedule.h: No such file or directory查了很久很多人都有这个error,是因为找不到依赖库,手动添加环境变量。
法1:
ctrl+alt+t
gedit /etc/environment [打开environment文件]
在environment文件末尾添加:usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib:/usr/local/gcc-6.2.0/lib"
souce/etc/environment [使添加的环境变量马上生效]
法2:
ctrl+alt+t
sudo gedit ~/.bashrc [打开.bashrc文件]
在.bashrc文件末尾添加:export LD_LIBRARY_PATH=:/usr/local/mpc-1.1.0/lib:/usr/local/gmp-6.1.2/lib:/usr/local/mpfr-4.0.1/lib:/usr/local/gcc-6.2.0/lib
souce ~/.bashrc [使添加的环境变量马上生效]
Ubuntu 系统中设置环境变量 https://jingyan.baidu.com/article/db55b609a3f6274ba30a2fb8.html]
make clean [清除下之前没成功编译的文件]
make [继续make] [据说要经过漫长的等待,然后我就去午饭午休取快递回来后发现漫长已过去,make无error出现。其中本人在执行过程中又出现了问题:通过终端发现需要在x86_64-linux-gnu/libgcc中查找config.log。报错:libmpfr.so.6: cannot open shared object file: No such file or directory。但是自己已经在~/.bashrc加上了,因此搜索资料自己在终端中又输入:
export LD_LIBRARY_PATH=/usr/local/mpfr-4.0.1/lib:$LD_LIBRARY_PATH
sudo ldconfig
export LD_LIBRARY_PATH=/usr/local/gmp-6.1.2/lib:$LD_LIBRARY_PATH
sudo ldconfig
export LD_LIBRARY_PATH=/usr/local/mpc-1.1.0/lib:$LD_LIBRARY_PATH
sudo ldconfig
]
make check [测试makefile的流程] [又出错了,没有截图是类似“/bin/bash: autogen: 未找到命令”,万能的前辈们说是没安装autogen:sudo apt-get install autogen]
make check[终于顺利了一次]
sudo make install [gcc安装结束]
step4:添加新版gcc的可执行文件到命令搜索路径中
ctrl+alt+t [打开终端]
gcc -v [查看gcc版本,发现依然是原来的gcc-5.4.0,原因是:gcc-6.1.0的可执行文件没有加入到搜索命令路径中]
which gcc[输出“/usr/bin/gcc”,指的是:gcc命令调用的是/usr/bin路径下的gcc]
sudo rm /usr/bin/gcc [删除usr/bin路径下的gcc,因为当前的usr/bin路径下的gcc链接指向的是老版本gcc-5.4.0]
sudo ln -si /usr/local/gcc-6.2.0/bin/gcc-6.2.0 gcc [将usr/bin路径下的gcc使用软链接到gcc-6.2.0]
gcc -v [查看gcc版本,确定成功为新版本]
step5:同step,添加新版g++的可执行文件到命令搜索路径中
ctrl+alt+t
g++ -v
which g++
sudo rm /usr/bin/g++
sudo ln -si /usr/local/gcc-6.2.0/bin/g++-6.2.0 g++
g++ -v
step6:编译hello ubuntu
ctrl+alt+t [打开控制台]
sudo apt-get install vim[安装vim]
mkdir my_c++ [在home下创建my_c++文件夹]
cd my_c++
vim hello.cpp[新建文件名hello.cpp的源文件]
i [键入i 进入insert模式,即编辑输入模式,写下经典代码:]
#include#includeusing namespace std;
int main(int argc,char const *argv[])
{
cout<
return 0;
}
Esc [输入完成后,按Esc键回到normal模式]
:wq [保存并退出vim,返回终端]
g++ hello.cpp -o hello [编译hello.cpp]
./hello [运行程序]
就可以看到结果:hello unbuntu!
转载自:
https://blog.csdn.net/liuyunduo/article/details/80179310
https://blog.csdn.net/joshuaxx316/article/details/50553185