linux - 与 gfortran 链接 : _edata: invalid version 21 (max 4)

标签 linux fortran gfortran rhel6 cblas

我正在使用 RHEL6 系统,但需要使用 C++11(甚至 C++14)功能移植代码。这迫使我手动构建 gcc-8.2,安装在私有(private)前缀 ( /prod/pfe/local ) 下。这在 /prod/pfe/local/bin 下创建了许多可执行文件: gcc、g++、ld 和 gfortran。

我现在正在尝试构建使用上述 gfortran 的 CBLAS。构建库 ( cblas_LINUX.a) 工作正常,但创建可执行文件失败并出现标题中引用的神秘错误:

gfortran -o xscblat1 c_sblat1.o c_sblas1.o ../lib/cblas_LINUX.a<br/> /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../x86_64-pc-linux-gnu/bin/ld: /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../lib64/libgfortran.so: _edata: invalid version 21 (max 4) /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../x86_64-pc-linux-gnu/bin/ld: /prod/pfe/local/lib/gcc/x86_64-pc-linux-gnu/8/../../../../lib64/libgfortran.so: error adding symbols: bad value

我是否错误地配置了 build gfortran?如果没有,我该如何解决这个问题——附加FFLAGSLDFLAGS某种形式的?

最佳答案

好的,according to the gcc-developers , 这是使用新链接器 ( gold ) 触发的已知错误。

--disable-gold 重建编译器套件解决了这个问题。

更新:更正——不知何故,禁用黄金还不够好。回到 binutils-2.30 是我最终做的......

关于linux - 与 gfortran 链接 : _edata: invalid version 21 (max 4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52375981/

相关文章:

regex - 匹配后出现 grep

linux - 安装 fs 有错误,建议运行 e2fsck

function - Fortran 函数中带有可选参数的段错误

oop - Fortran,(1) 处的终结尚未实现

debugging - Gfortran:将所有 block 视为 block

linux - 尝试从 linux ldapsearch 命令获取 memberof 详细信息

基于Python的Socket程序接受libPcap(C-based)

fortran - "%"在 Fortran 中意味着什么?

pointers - 用于 malloc 的非第一个元素的 Cray 指针

fortran - 使用 mpi_f08 模块时调用 mpi_gatherv 后数组的 Lbound 发生变化