编译 GMP,MPFR,MPC
注意三个库编译的顺序 (gmp -> mpfr -> mpc)。因为编译 mpfr 时需要依赖于 gmp,编译mpc时候又需要依赖于 gmp 和 mpfr,所以需要最先编译 gmp,然后编译 mpfr,最后编译 mpc。编译过程中需要在 configure 配置时设置好 gmp,mpfr 的 include 和 lib 路径,不然就会遇见 configure: error: libgmp not found or uses a different ABI (including static vs shared). configure: error: libmpfr not found or uses a different ABI (including static vs shared). 这两个 configure: error。
2.1. 编译GMP
编译的时候需要记录下 --prefix 参数的值,也就是我们自定义的gmp的安装目录,后面编译其他两个库和gcc的时候需要使用。
1 | tar -xvjf gmp-6.2.1.tar.bz2 |
2.2. 编译MPFR
1 | tar -xvjf mpfr-4.1.0.tar.bz2 |
2.3. 编译MPC
1 | tar -xvzf mpc-1.2.1.tar.gz |
2.4. 配置动态库 (so)到 LD_LIBRARY_PATH 环境变量
在终端运行下面命令可以将上面所编译好的三个库的动态库 (so)文件配置到 LD_LIBRARY_PATH 环境变量中,如果需要让配置永久生效,则需将下面的代码添加到 ~/.bashrc 文件中 并运行 source ~/.bashrc 命令即可。
1 | export LD_LIBRARY_PATH=/home/test/deps/gmp-6.2.1/lib:/home/test/deps/mpfr-4.1.0/lib:/home/test/deps/mpc-1.2.1/lib:$LD_LIBRARY_PATH |
3. 源代码编译安装GCC
3.1. 下载最新版的GCC
可以直接从 GCC, the GNU Compiler Collection 下载最新版本的 GCC 源码压缩包,在这里我通过 wget命令从GCC mirror sites 服务器下载当前最新版本 GCC 源码压缩包。 关于 GCC mirror sites 的选择可以浏览下面的网页:
GCC mirror sitesgcc.gnu.org/mirrors.html
1 | wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.1.0/gcc-13.1.0.tar.gz |
3.2. 编译安装 GCC
详细的 configure 参数设置可以参考:Installing GCC: Configuration,这里我没有设置过多的参数。
1 | tar -xvzf gcc-13.1.0.tar.gz |
如果在make的过程遇见 # error GATHER_STATISTICS must be defined 这个错误,则只需通过在终端运行export CPLUS_INCLUDE_PATH= 命令暂时的清除CPLUS_INCLUDE_PATH 变量即可。
4. 环境变量的配置
安装完 GCC 之后,我们需要将其配置到系统的环境变量中,如果需要长久生效,则需要将下面内容添加到 ~/.bashrc中即可。也可以通过构建软链接的方式替换成老版本的GCC。
1 | export PATH=/home/test/gcc-14.2.0/bin:$PATH |