Centos 7.6 源码编译安装 GCC 10.3.0

Centos7.6 Yum 安装的默认 GCC 版本为 4.8.5 ,如果需要使用 GCC 的最新特性,则需要源码安装 GCC 最新版。编译过程中解决不少报错,最终有了本文的实测成功记录。

安装环境

  • 系统:CentOS 7.6.1810
  • 软件:GCC 10.3.0
  • 依赖软件:gmpmpfrlibmpc

安装说明

C++17
GCC7完全支持, GCC6GCC5 部分支持, GCC6 支持度当然比 GCC5 高, GCC4 及以下版本不支持。
C++14
GCC5 就可以完全支持, GCC4 部分支持, GCC3 及以下版本不支持。
C++11
GCC4.8.1 及以上可以完全支持。 GCC4.3 部分支持, GCC4.3 以下版本不支持。
高版本的 GCC 向下兼容,支持低版本的 C++ 标准。现在很多服务器 Yum 里的 GCC 版本是 4.8.5 ,也就是可以完全支持 C++11 了,部分支持 C++14 ,不支持 C++17

安装相关包

安装依赖库

  • Yum 安装 GCCGCC-C++C/C++ 语言编译环境以及所需的依赖库

预先安装旧版 GCC 以及编译时所需的依赖库,最后工作在进行卸载

# 安装EPEL源
yum install -y epel-release

# 安装工具
yum install -y vim wget gcc gcc-c++ make autoconf automake zip bzip2

# 安装基础编译软件
yum install -y gcc-gnat libgcc libgcc.i686 glibc-devel bison flex m4 texinfo build-essential

准备相关 GCC

编译过程是非常耗时的(本机耗时 6 小时完成编译),因此如果读者选用此方式安装 GCC ,则在执行 make 命令时一定要安排合适的时间。

下载并解压

wget -P '/usr/local/src' https://ftp.gnu.org/gnu/gcc/gcc-10.3.0/gcc-10.3.0.tar.gz \
&& cd /usr/local/src \
&& tar -zxvf gcc-10.3.0.tar.gz -C '/usr/local/src' \
&& cd gcc-10.3.0

加入依赖库环境变量

echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64' >> /etc/profile
  • 使环境变量立即生效
source /etc/profile

添加动态链接库

vim /etc/ld.so.conf

添加以下内容

include ld.so.conf.d/*.conf
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64

重新搜索当前系统上所有库文件搜索路径下的库文件,并生成缓存

ldconfig -v

安装依赖包

  • 检查和下载 GCC 依赖环境
# 下载安装 GCC 所需要的依赖包(如 gmp、mpfr、mpc 等)
# 一定观察此命令的执行结果,保证其确实是将 gmp、mpfr、mpc 等依赖包成功下载下来。
./contrib/download_prerequisites
> gmp-6.1.0.tar.bz2: OK
> mpfr-3.1.4.tar.bz2: OK
> mpc-1.0.3.tar.gz: OK
> isl-0.18.tar.bz2: OK
> All prerequisites downloaded successfully.
  • 编译安装依赖包(可忽略)
cd /usr/local/src/gcc-10.3.0/gmp-6.1.0
./configure --prefix=/usr/local/gmp-6.1.0
make && make install

cd /usr/local/src/gcc-10.3.0/mpfr-3.1.4
./configure --prefix=/usr/local/mpfr-3.1.4 --with-gmp=/usr/local/gmp-6.1.0
make && make install

cd /usr/local/src/gcc-10.3.0/mpc-1.0.3
./configure --prefix=/usr/local/mpc-1.0.3 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4
make && make install

cd /usr/local/src/gcc-10.3.0/isl-0.18
./configure --prefix=/usr/local/isl-0.18  --with-gmp=/usr/local/gmp-6.1.0
make && make install

编译安装 GCC

cd /usr/local/src/gcc-10.3.0 \
&& mkdir build && cd build \
&& ../configure --enable-threads=posix --enable--long-long --enable-languages=c,c++ --disable-checking --disable-multilib

# 如果GCC依赖包已经进行了上一步编译操作,则执行以下命令:
../configure --prefix=/usr/local/gcc-10.3.0 --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3 --with-isl=/usr/local/isl-0.18 --enable-threads=posix --enable--long-long --enable-languages=c,c++ --disable-checking --disable-multilib

	--enable-threads=posix	使c++异常能处理多线程代码
	--enable--long-long	设定gcc数据类型大小
	–-enable-languages	表示你要让你的gcc支持那些语言
	–-disable-checking	生成的编译器在编译过程中不做额外检查,也可以使用 *–enable-checking=xxx*	来增加一些检查
	–-disable-multilib	不生成编译为其他平台可执行代码的交叉编译器。

# 整个编译过程,根据你的机器配置,可能要等十几分钟到一个小时不等;
# 4为当前服务器每颗物理CPU中的核心数,以实际为准。
make -j 4
yum -y remove gcc gcc-c++	# 安装前卸载原来的GCC
make install
# 由此就成功安装了 10.3.0 版本的 GCC 编译器。需要注意的是,如果此时读者直接执行 gcc --version,则 GCC 版本仍会显示之前安装的版本。操作系统重启之后,GCC 版本就会自行更正过来。
  • 配置环境变量
echo 'export PATH=/usr/local/gcc-10.3.0/bin:$PATH' >> /etc/profile
exit	# 执行后需要重启终端窗口
  • 检查GCC版本

重新登录后检查当前 GCC 版本

gcc -v

作者:白小七羽
原文链接:https://geek.xiaoqy.com/404.html

A:要在CentOS 7.6编译安装FFmpeg,可以按照以下步骤进行操作: 1. 安装基本工具 首先,需要安装一些基本的工具和库。使用以下命令在CentOS 7.6安装这些软件包: ``` yum install -y autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel ``` 2. 下载最新的FFmpeg源码 从官方网站 https://ffmpeg.org/download.html 下载最新版本的FFmpeg源码压缩包,并将其解压缩到某个目录中。例如: ``` cd /usr/local/src wget https://ffmpeg.org/releases/ffmpeg-4.3.1.tar.bz2 tar -xjvf ffmpeg-4.3.1.tar.bz2 cd ffmpeg-4.3.1 ``` 3. 配置和编译FFmpeg 使用以下命令在CentOS 7.6上配置和编译FFmpeg: ``` ./configure --enable-shared --disable-static make make install ``` 这将启用共享库,并禁用静态库。如果需要使用其他选项,可以在“configure”命令中添加相应的参数。 4. 配置库路径 最后,在使用FFmpeg时需要将库路径配置到环境变量中。使用以下命令将其添加到“/etc/ld.so.conf.d”目录下的新文件中: ``` echo "/usr/local/lib/" >> /etc/ld.so.conf.d/ffmpeg.conf ldconfig -v ``` 这将添加“/usr/local/lib/”到ld.so.conf文件中,并重新加载库缓存。现在应该可以成功使用FFmpeg了。 以上是在CentOS 7.6编译安装FFmpeg的步骤。需要注意的是,具体的操作可能会因为系统环境和其他因素而有所不同。在操作时请认真阅读相关文档,并保证操作安全。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白小七羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值