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

Qt6交叉编译STM32MP157遇SDK Perl缺失English.pm,如何使用宿主Perl?

解决STM32MP157构建Qt6时调用SDK缺省Perl的问题

该错误的根因为STM32 SDK内置的Perl运行环境缺失English.pm基础模块,优先通过指定CMake的Perl路径参数解决,具体操作步骤如下:

方案1:CMake显式指定宿主Perl路径(推荐)

这是对构建流程影响最小的方案,不会干扰SDK其他工具的正常调用:

  1. 先查询宿主系统Perl的实际路径
which perl

正常返回结果为/usr/bin/perl
2. 执行Qt6 CMake配置时追加PERL_EXECUTABLE参数,示例:

cmake .. \
-DCMAKE_TOOLCHAIN_FILE=<你的STM32MP1工具链cmake文件路径> \
-DPERL_EXECUTABLE=/usr/bin/perl \
<你原来的其他CMake配置参数>

配置完成后正常执行构建流程即可。

方案2:临时调整PATH优先级(备选)

如果方案1不生效,可以在source完SDK环境脚本后,临时修改PATH变量将系统可执行文件路径放在最前面,覆盖SDK的Perl调用:

# source SDK环境后执行
export PATH=/usr/bin:$PATH
# 再执行cmake配置和构建流程

注意:该方案可能会优先调用系统内与SDK重名的其他工具,可能引发未知构建异常,仅作为临时备选方案。

前置校验(可选)

如果宿主系统Perl也提示缺失English.pm,执行以下命令安装Ubuntu默认Perl模块集即可:

sudo apt install perl-modules-$(perl -v | grep -oP 'v\K\d+\.\d+')

额外提示(可选)

报错中的locale警告不影响构建结果,如果要消除警告,执行构建前设置以下环境变量即可:

export LC_ALL=C.UTF-8

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 10:48:00