You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Mint下gfortran编译Fortran模块遇未定义引用,求库查找方法

解决Fortran链接器未定义引用问题:找到缺失函数所属库
  • 先查项目自带文档或源码注释
    老Fortran项目通常会在README、Makefile或者源码开头的注释里说明依赖库。直接搜源码里的PLM、GETTIM相关注释,或者找项目里的编译脚本,里面大概率有链接选项(比如-lxxx)的说明。另外检查项目目录下有没有和这些函数名对应的未编译源文件(比如plm.f、timutils.f90),如果有,把它们加入编译列表一起编译。

  • 用nm命令搜索系统库中的符号
    Fortran函数编译后会自动在名字后加下划线(比如源码里的PLM对应plm_),可以用nm命令遍历系统库查找匹配的符号:

    # 搜索单个符号,递归遍历常见库路径
    find /usr/lib /usr/local/lib -name "*.so" -o -name "*.a" | xargs nm -D 2>/dev/null | grep 'plm_'
    

    如果找到某个库包含该符号,编译时加上-l库名(比如找到libbar.so,就添加-lbar参数)。

  • 尝试objdump工具辅助排查
    要是nm没找到结果,用objdump查看库的动态符号表:

    objdump -T /usr/lib/libxxx.so | grep 'plm_'
    
  • 尝试安装常见老Fortran依赖库
    部分老Fortran代码依赖libf2c库,可以先安装libf2c-dev包,然后编译时添加-lf2c链接选项试试。

内容的提问来源于stack exchange,提问作者Keir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:54:58