Ubuntu20.04安装软件包遇GLIBC未定义引用错误求助
解决conda环境下libgfortran链接GLIBC符号缺失问题
问题分析
你遇到的链接错误并非系统GLIBC版本不足(系统GLIBC 2.31远高于要求的2.17),而是conda环境内的libgfortran.so.4与系统GLIBC存在兼容性冲突,或是conda环境的库路径优先级导致链接时调用了不匹配的库文件。
具体解决方案
1. 更新conda环境中的libgfortran版本
先查看当前环境的libgfortran版本:
conda list libgfortran
若版本为4.x,尝试安装适配gcc 12的版本(gcc 12通常对应libgfortran 5),建议使用conda-forge源:
conda install -c conda-forge libgfortran=5
2. 调整链接库优先级
编译前设置环境变量,让系统标准库优先被调用:
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
之后重新执行编译命令。
3. 基于conda-forge创建全新兼容环境
创建新环境时指定conda-forge通道,确保获取的编译工具链和库文件版本兼容:
conda create -n new_sedona_env -c conda-forge gcc_linux-64 gfortran_linux-64 libgfortran conda activate new_sedona_env
在该环境中重新编译目标软件包。
4. 排查libgfortran的依赖关系
定位conda环境中的libgfortran库,检查其依赖:
cd /home/satadru/anaconda3/envs/sedona/lib ldd libgfortran.so.4
若发现依赖的GLIBC符号异常,直接用conda安装更高版本的libgfortran替换现有库即可。
关于tmpnam警告的说明
loslib.c:(.text+0x2b0): warning: the use of tmpnam' is dangerous, better use mkstemp'仅为编译警告,不影响编译流程,若需解决可修改源码将tmpnam替换为mkstemp,但当前需优先处理链接错误。
内容的提问来源于stack exchange,提问作者deltasata
相关产品推荐
相关产品推荐

