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

Ubuntu20.04编译CaMa-Flood模型遇多类错误及gcc安装问题求助

解决Ubuntu 20.04编译CaMa-Flood及gcc-4.8.5安装的系列问题

一、CaMa-Flood编译初始错误处理

1. 脚本语法错误

  • 检查compile.sh换行符格式:Ubuntu默认用LF,若脚本是Windows的CRLF,执行dos2unix compile.sh转换。
  • 定位报错行,检查语法细节:比如if语句的括号、分号是否正确,变量引用是否漏加$,引号是否匹配。

2. 创建lib_dates.f90权限不足

  • 优先修改当前目录权限:sudo chmod 755 ./,确保用户有读写执行权限。
  • 若脚本生成文件到系统目录,修改脚本中的输出路径为当前用户有权限的目录,或临时用sudo ./compile.sh执行(注意sudo会切换环境变量,可能影响后续编译依赖)。

3. GNU Fortran版本不兼容

CaMa-Flood部分版本对gfortran版本有特定要求,不必直接降级到gcc-4.8.5,可先尝试适配版本:

  • 查看CaMa-Flood官方文档确认推荐版本,Ubuntu 20.04仓库可直接安装gfortran-7/8:
    sudo apt install gfortran-7
    
  • 切换gfortran版本:
    sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-7 50
    sudo update-alternatives --config gfortran
    
  • 若必须使用gcc-4.8.5,再处理后续libstdc++问题。

4. 链接时找不到-lnetcdff库

  • 安装netCDF-Fortran开发包:
    sudo apt install libnetcdff-dev
    
  • 若仍找不到,在compile.sh中添加库路径配置:
    export LDFLAGS="-L/usr/lib/x86_64-linux-gnu $LDFLAGS"
    export CPPFLAGS="-I/usr/include $CPPFLAGS"
    
  • 验证netcdff安装:执行pkg-config --libs netcdff,将输出内容追加到编译脚本的链接参数中。

二、gcc-4.8.5安装时libstdc++.so.6缺失CXXABI_1.3.8的解决

Ubuntu 20.04自带的libstdc++版本偏高,gcc-4.8.5编译依赖旧版CXXABI,可通过以下方式解决:

  1. 安装旧版libstdc++包:

    sudo apt install libstdc++6:i386
    

    若仓库无对应版本,可下载libstdc++6_4.8.5-4ubuntu8_amd64.deb手动安装。

  2. 临时指定库路径:
    在执行make前设置环境变量,让编译过程优先找到所需库:

    export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
    
  3. 编译gcc-4.8.5时静态链接libstdc++:
    在./configure阶段添加参数:

    ./configure --prefix=/usr/local/gcc-4.8.5 --enable-static-libstdc++
    

    之后再执行make MAKEINFO="makeinfo --force"。

  4. 手动补充缺失的库符号:

    • 检查当前系统库的符号:strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI,确认无CXXABI_1.3.8。
    • 下载旧版libstdc++.so.6.0.20,复制到/usr/local/lib:
      sudo cp libstdc++.so.6.0.20 /usr/local/lib
      sudo ln -s /usr/local/lib/libstdc++.so.6.0.20 /usr/local/lib/libstdc++.so.6
      
    • 设置环境变量优先加载该路径:
      export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 10:55:27