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

在Yocto Scarthgap(stm32mpu157f-dk2)的OpenSTLinux启用libgfortran报错求助

在OpenSTLinux上启用libgfortran的问题及解决办法

问题描述

尝试在OpenSTLinux上启用libgfortran,按照网上资料在local.conf中添加了以下配置:

IMAGE_FEATURES += "tools-sdk"
FORTRAN = ",fortran"
FORTRAN_forcevariable = ",fortran"
RUNTIMETARGET += " libquadmath libgfortran"
IMAGE_INSTALL += " gfortran gfortran-symlinks libgfortran libgfortran-dev"

执行bitbake st-image-weston命令时出现错误,翻译后的错误信息如下:

bitbake st-image-weston     
注意:已启动PRServer,DB文件:/home/user/Desktop/Testing/Ashish/02_STM32MCU/OpenSTLinux2/build-openstlinuxweston-stm32mp1/cache/prserv.sqlite3,地址:127.0.0.1:44813,进程ID:2068707
加载缓存:100% |##########################################################################################################| 耗时:0:00:01
从依赖缓存中加载4984条记录。
解析配方:100% |########################################################################################################| 耗时:0:00:00
完成3033个.bb文件的解析(3024个已缓存,9个新解析)。4984个目标,635个被跳过,0个被屏蔽,0个错误。
注意:正在解析所有缺失的任务队列依赖
错误:没有任何包提供'libgfortran'(但/home/user/Desktop/Testing/Ashish/02_STM32MCU/OpenSTLinux2/layers/meta-st/meta-st-openstlinux/recipes-st/images/st-image-weston.bb 依赖或需要它)
nativesdk-libgfortran 可提供libgfortran,但被跳过:libgfortran需要编译器启用Fortran支持
libgfortran 被跳过:libgfortran需要编译器启用Fortran支持
注意:运行时目标'libgfortran'无法构建,正在移除...
缺失或无法构建的依赖链为:['libgfortran']
错误:所需构建目标'st-image-weston'没有可构建的提供者。
缺失或无法构建的依赖链为:['st-image-weston', 'libgfortran']

问题原因

错误核心是编译器未启用Fortran支持,原配置中FORTRAN = ",fortran"的写法不符合Yocto构建系统规范,导致编译器未正确开启Fortran编译能力,进而libgfortran包被跳过构建。

解决步骤

  1. 修正Fortran启用配置
    在local.conf中替换原有的Fortran相关配置为:

    # 启用交叉编译器的Fortran支持
    TARGET_VENDOR = "-fortran"
    FORTRAN = "fortran"
    FORTRAN_forcevariable = "fortran"
    

    关键补充TARGET_VENDOR = "-fortran",该配置会告知Yocto构建支持Fortran的交叉编译器,是开启Fortran支持的核心步骤。

  2. 调整安装包配置
    保留工具集和安装包配置,移除冗余的RUNTIMETARGET配置(IMAGE_INSTALL会自动处理依赖):

    IMAGE_FEATURES += "tools-sdk"
    IMAGE_INSTALL += "gfortran gfortran-symlinks libgfortran libgfortran-dev"
    
  3. 清理缓存并重新构建
    执行以下命令清理旧缓存,避免配置冲突:

    bitbake -c cleanall st-image-weston
    bitbake st-image-weston
    

额外检查点

  • 确认OpenSTLinux的基础层(如meta-oe)已正确包含,OpenSTLinux官方镜像通常默认包含,但自定义层环境需验证。
  • 若问题仍存在,检查recipes-devtools/gcc/gcc*.bbappend文件是否存在限制Fortran的配置,如有则移除相关限制项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 22:26:00