银河麒麟GCC编译升级

实施留档:

生产环境,无法联网。

因若干原因,需离线升级GCC。(没有G++等原因)

在尝试手动安装rpm包(iso中)失败,

离线uploading,gmp、mpfr等包,编译失败。

验证可行的:

1、一台虚拟机。本人采取qemu在本机(win10-x86-64)虚拟了一台arm64,银河麒麟。

        注:可行的,在windows10系统中,用qemu软件创建ARM构架虚拟机_qemu创建arm虚拟机_Allezima的博客-CSDN博客

2、编译方式,具体过程见,麒麟V10编译安装GCC9.3_麒麟系统安装gcc_架构艺术AA的博客-CSDN博客

3、编译gcc升级包。

        注意事项:make -j 有几个核写几个数字,建议make -j 4 ,不然那会编译报错,白白浪费几 ·个小时)

4、本文主旨,记录,编译安装后的、usr/local/gcc-9.0.3 。环境变量配置。

5、虚拟机iso等资源的获取方式

      中标麒麟:

          Red Hat Enterprise Linux ISO 全镜像下载_redhat enterprise linux 6.9镜像下载_邹邹s的博客-CSDN博客

      银河麒麟:

          银河麒麟高级服务器操作系统V10下载安装及安装docker_kylin-server-10-sp2-x86-release-build09-20210524.i_儿时可乖了的博客-CSDN博客

<think>好的,我现在需要帮助用户在银河麒麟系统上编译GMP 6.2.1。首先,我得回忆一下编译开源库的一般步骤,通常包括下载源码、配置、编译、安装这几个阶段。但用户可能在过程中遇到依赖问题或者系统兼容性问题。 用户提到他们之前遇到了缺少GMP、MPFR和MPC的问题,但现在他们想直接编译GMP 6.2.1。这可能是因为在编译其他软件时,系统自带的GMP版本太低,需要手动安装更高版本。银河麒麟是基于Linux的,所以常规的编译方法应该适用,但需要考虑系统的特定环境,比如库路径、权限或者编译器选项。 首先,我应该确认编译GMP的基本步骤。根据GMP的官方文档,通常步骤是解压源码,运行./configure,然后make和make install。但可能需要注意配置时的参数,比如安装路径,或者是否启用共享库。 接下来,用户可能在配置或编译过程中遇到错误。常见的错误可能包括缺少依赖库、权限不足、或者编译器不兼容。比如,configure阶段可能会检查系统是否安装了必要工具,如m4,这些在银河麒麟上可能需要预先安装。此外,如果用户之前尝试过安装但失败,可能需要清理之前的安装残留。 另外,用户可能没有安装build-essential或其他构建工具,导致编译失败。这时候需要提醒用户安装这些基础工具。还有,权限问题,比如安装到/usr/local目录可能需要sudo权限,用户可能忘记使用sudo make install,导致安装失败。 还有可能的问题是在动态库加载时,新安装的GMP库没有被系统识别。这时候需要更新ldconfig,或者设置LD_LIBRARY_PATH环境变量,特别是在非标准路径安装时。 需要考虑到银河麒麟系统可能基于Debian或CentOS,不同的包管理工具。如果是Debian系,可以使用apt安装依赖;如果是CentOS系,则使用yum或dnf。用户可能需要安装m4、gcc、make等工具。 最后,生成相关问题时要围绕编译GMP的步骤、依赖解决、常见错误处理,以及后续的使用和验证方法。例如,如何验证安装成功,如何处理动态库路径问题,如何卸载等。</think>### 银河麒麟系统编译 GMP 6.2.1 详细教程 #### 一、准备工作 1. **安装基础编译工具** ```bash sudo apt update sudo apt install build-essential m4 ``` *确保已安装编译器(gcc)、构建工具(make)和宏处理器(m4)* 2. **下载源码包** ```bash wget https://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.2.1.tar.bz2 tar -xvf gmp-6.2.1.tar.bz2 cd gmp-6.2.1 ``` --- #### 二、配置与编译 1. **配置编译参数** ```bash ./configure --prefix=/usr/local/gmp-6.2.1 --enable-cxx ``` - `--prefix` 指定安装路径(避免覆盖系统默认库) - `--enable-cxx` 启用 C++ 支持[^1] 2. **编译并安装** ```bash make -j$(nproc) # 使用多核加速编译 sudo make install # 需 root 权限写入系统目录 ``` --- #### 三、环境配置 1. **添加库路径** ```bash echo "/usr/local/gmp-6.2.1/lib" | sudo tee /etc/ld.so.conf.d/gmp.conf sudo ldconfig ``` *解决动态库加载问题* 2. **验证安装** ```bash /usr/local/gmp-6.2.1/bin/gmpcheck # 运行自检程序 ``` --- #### 四、常见错误解决方案 | 错误现象 | 原因分析 | 解决方法 | |---------|---------|---------| | `configure: error: could not find a working compiler` | 缺少基础编译工具链 | 执行 `sudo apt install build-essential` | | `m4: command not found` | 缺少宏处理器 | 运行 `sudo apt install m4` | | `error: C++ compiler cannot create executables` | C++ 支持未启用或编译器不兼容 | 配置时添加 `--enable-cxx` | | 运行时提示 `libgmp.so.10: cannot open shared object file` | 动态库路径未识别 | 执行 `sudo ldconfig` 更新库缓存 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值