是否可以在 CentOS Linux 上安装旧版本的 gcc 编译器,即使我已经有其他版本

是否可以在 CentOS Linux 上安装旧版本的 gcc 编译器,即使我已经有其他版本

由于某些原因,我安装了 CentOS6,并且想要编译用 c++ 和 fortran 编写的文档。我发现我必须更改 gcc 版本,因为使用当前的 gcc-gfortran 编译器会出现一些错误。当前编译器的信息是 gcc-gfortran4.8,为了修复这个错误,我需要使用 gcc-gfortran 4.2 之前的版本。有人可以帮我解决这个问题吗,谢谢。

编译器更新来自(的信息https://github.com/gcc-mirror/gcc/blob/releases/gcc-4.3.0/libgfortran/runtime/memory.c):

  • Runtime/memory.c (internal_realloc、allocate、allocate_array、deallocate):删除函数。
  • gfortran.map (_gfortran_allocate、_gfortran_allocate_array、_gfortran_deallocate、_gfortran_internal_realloc):删除符号。
  • libgfortran.h (error_codes):添加注释。

使用当前编译器的错误信息:

sdfReinit3d.F:(.text+0x388e): 未定义引用_gfortran_allocate64_array' sdfReinit3d.F:(.text+0x3af6): undefined reference togfortran_deallocate' sdfReinit3d.F:(.text+0x3b10): 对_gfortran_deallocate' /home/ce202025/SDFlib1/sample/../usr/local/sphere/lib/libSDF.a(sdfReinit3d.o): In functionsdf_reinit3d_weno的未定义引用':sdfReinit3d.F:(.text+0x3c2e): 对_gfortran_allocate64_array' sdfReinit3d.F:(.text+0x3e96): undefined reference to_gfortran_deallocate 未定义引用' sdfReinit3d.F:(.text+0x3eb0): 对 `_gfortran_deallocate' 未定义引用

答案1

您可以同时安装任意数量的 gcc 版本。

CentOS6,f77、g77: yum install compat-gcc-34-g77→ 提供/usr/bin/{gcc34, f77, g77}

gfortran41:gcc41-c++-4.1.2-1.el6.x86_64.rpmhttps://drive.google.com/file/d/1ITNcvvDO_7yYAnYw0yVTqtC9k3QCwMcR/view?usp=sharing→ 提供/usr/bin/{gcc41, g++41, gfortran41}

gfortran42:gcc42-c++-4.2.4-21.1.el6.x86_64.rpmhttps://drive.google.com/file/d/1yoa9Qvi5XXUv4amfptzNeyeclrpgGxMC/view?usp=sharing→ 提供/usr/bin/{gcc42, g++42, gfortran42}

相关内容