提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:这里可以添加本文要记录的大概内容:
centos7 安装gcc、g++4.8.2 并编译c++文件测试,建议先把源换成阿里源或其他国内源,换源后下载速度较快(更换源见附录1)。
提示:以下是本篇文章正文内容,下面案例可供参考
一、先安装任意版本的GCC
sudo yum install gcc gcc-c++ glibc-static -y
安装完成后输入
gcc -v
g++ -v
可以看到已安装的gcc、g++版本
二、下载gcc 4.8.2源代码
代码如下:
sudo wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.bz2
解压缩源代码包,
sudo tar -vxf gcc-4.8.2.tar.bz2
进入gcc-4.8.2目录,执行
./contrib/download_prerequisites
脚本会自动下载三个依赖库别为gmp-4.3.2、mpfr-2.4.2、mpc-0.8.1,也可 以通过如下地址离线 下载安装:
ftp://ftp.gnu.org/gnu/gmp/gmp-4.3.2.tar.bz2
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2.tar.bz2
http://www.multiprecision.org/mpc/download/mpc-0.8.1.tar.gz
如果是通过脚本自动下载的依赖库,则会在gcc-4.8.2目录下生成gmp、mpfr和mpc三个目录,分别安装即可。如果通过此方法下载,在gcc-4.8.2文件下可以看到
三、编译&安装 gmp、mpfr和mpc
3.1 gmp
在gcc-4.8.2 文件下分别执行
cd gmp
sudo mkdir build
cd build
sudo ../configure --prefix=/usr/local/gcc/gmp-4.3.2
–prefix=/usr/local/gcc/gmp-4.3.2 即指定的安装目录,可以自定义,下面的安装同理
可能遇到错误:
checking for suitable m4… configure: error: No usable m4 in $PATH or /usr/5bin (see config.log for reasons).
执行下面代码即可:
sudo yum install m4.x86_64
config成功后,运行
su
获取root权限(因为要在config时指定的文件创建文件夹),随后
sudo make -j20 && make install
-j 20 多线程make
3.2 mpfr
回到 gcc-4.8.2 文件下分别执行
cd mpfr
sudo mkdir build
cd build
sudo ../configure --prefix=/usr/local/gcc/mpfr-2.4.2 --with-gmp=/usr/local/gcc/gmp-4.3.2
成功后
sudo make -j20 && make install
3.3 mpc
回到 gcc-4.8.2 文件下分别执行
cd mpc
sudo mkdir build
cd build
sudo ../configure --prefix=/usr/local/gcc/mpc-0.8.1 --with-mpfr=/usr/local/gcc/mpfr-2.4.2 --with-gmp=/usr/local/gcc/gmp-4.3.2
成功后
sudo make -j20 && make install
三步全部安装成功后可以在/usr/local/gcc(或者自己指定的目录)下看到3个模块
然后将其添加到动态库路径中:
sudo gedit /etc/ld.so.conf
打开ld.so.conf
复制
/usr/local/gcc/gmp-4.3.2/lib
/usr/local/gcc/mpfr-2.4.2/lib
/usr/local/gcc/mpc-0.8.1/lib
具体路径以自己为准,复制后保存并关闭。
四、编译&安装gcc-4.8.2
回到gcc-4.8.2文件
sudo mkdir build && cd build
切换到 root用户
sudo ../configure --prefix=/usr/local/gcc --enable-threads=posix --disable-checking --enable-languages=c,c++ --disable-multilib
成功后
make -j20 && make install
时间比较久
五、卸载已安装的gcc并链接到4.8.2版本
卸载
sudo yum remove gcc
sudo yum remove gcc-c++
sudo updatedb
链接
cd /usr/bin
ln -s /usr/local/gcc/bin/gcc gcc
ln -s /usr/local/gcc/bin/g++ g++
六、配置系统环境变量
sudo gedit /etc/profile
在打开的文件unset i 上方添加(具体路径以自己为准)
LD_LIBRARY_PATH=:/usr/local/gcc/mpc-0.8.1/lib:/usr/local/gcc/gmp-4.3.2/lib:/usr/local/gcc/mpfr-2.4.2/lib:/usr/local/gcc/lib
export LD_LIBRARY_PATH
同步环境变量
source /etc/profile
成功,查看版本
七、 代码编译测试
7.1 编译c 测试
创建并打开c文件
sudo touch testC.c
sudo gedit testC.c
在文件中写入
#include<stdio.h>
int main(){
printf("Hello C!\n");
return 0;
}
保存并关闭
sudo gcc testC.c -o testC
sudo ./testC
可以看到输出
7.2 编译c ++测试
创建并打开c文件
sudo touch testCpp.cpp
sudo gedit testCpp.cpp
在文件中写入
#include<iostream>
using namespace std;
int main(){
cout << "Hello C++!" << endl;
return 0;
}
保存并关闭文件
sudo g++ testCpp.cpp -o testCpp
./testCpp
可以看到输出
附录1 centos更换源
centos 更换国内源(阿里源为例)
1、备份(针对所有CentOS可用,备份文件在当前路径下)
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、运行yum makecache生成缓存
sudo yum makecache