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

如何通过.bbappend层在Yocto中启用Fortran编译支持?

Yocto自定义层启用Fortran支持的正确配置与依赖修复

一、通过.bbappend启用gcc Fortran支持的正确方式

无需修改openembedded-core的原gcc配方,在你的meta-deimos层中创建对应bbappend文件即可实现:

  1. 创建对应路径的bbappend文件
    在meta-deimos层内新建目录与文件:recipes-devtools/gcc/gcc-13.3.bbappend(若要兼容多版本gcc,改用gcc_%.bbappend)

  2. 写入Fortran启用配置
    将以下内容添加到bbappend文件中:

    # 开启Fortran语言支持开关
    FORTRAN = "1"
    # 向gcc编译配置中追加Fortran语言支持
    EXTRA_OECONF += "--enable-languages=c,c++,fortran"
    # 声明运行时依赖libgfortran
    RDEPENDS:${PN}-runtime += "libgfortran"
    # 若需开发库,添加开发包依赖
    RDEPENDS:${PN}-dev += "libgfortran-dev"
    

二、修复libgfortran依赖不可构建的错误

出现libgfortran无法被提供的问题,核心是依赖链未正确触发构建,按以下步骤修复:

  • 确认bbappend路径正确性:确保文件位于meta-deimos/recipes-devtools/gcc/下,Yocto会自动匹配原gcc配方。
  • 显式添加Fortran相关包到镜像:在你的镜像配方或local.conf中添加:
    IMAGE_INSTALL:append = " gfortran libgfortran libgfortran-dev"
    
    若是scipy依赖导致的问题,可在scipy的bbappend中添加构建依赖:
    DEPENDS:append = " gfortran-native libgfortran"
    
  • 开启DISTRO_FEATURES中的fortran选项:在local.conf或层的distro配置文件中添加:
    DISTRO_FEATURES:append = " fortran"
    
  • 清理构建缓存:执行命令清理旧缓存,避免残留配置干扰:
    bitbake -c cleansstate gcc
    bitbake -c cleansstate scipy
    
    之后重新执行镜像构建命令。

三、验证配置生效

构建完成后,进入镜像验证:

  • 执行gfortran --version确认编译器正常安装
  • 检查/usr/lib/目录下是否存在libgfortran.so系列文件
  • 运行依赖scipy的Python脚本,确认Fortran相关功能可正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:27:33