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

Recipe构建任务中添加PHP/Composer依赖后无法调用的问题求助

问题原因与解决方法

核心问题

你将php和composer-php84添加到了DEPENDS中,但DEPENDS是目标系统的运行/编译依赖,这些包是编译后供目标板使用的,并非构建主机(编译环境)的工具。构建阶段所需的工具需要添加到BUILD_DEPENDS,同时还要确保构建环境能找到这些工具的可执行文件。

具体修复步骤

  1. 修正依赖声明
    将构建工具依赖移至BUILD_DEPENDS,如果目标系统运行时也需要PHP,再保留DEPENDS的相关配置:

    # 构建阶段需要的工具依赖
    BUILD_DEPENDS = "php composer-php84"
    # 若目标系统运行时需PHP,保留此行
    DEPENDS += "php"
    
  2. 让构建环境找到可执行文件
    Yocto构建时,BUILD_DEPENDS的工具不会自动加入默认PATH,有两种处理方式:

    • 直接使用工具的绝对路径(推荐规范写法):
      do_compile() {
          ${STAGING_BINDIR_NATIVE}/php --version
          ${STAGING_BINDIR_NATIVE}/composer-php install
          # ... 其他PHP调用同理
      }
      
    • 将工具所在路径临时加入环境变量:
      do_compile() {
          export PATH="${STAGING_BINDIR_NATIVE}:${PATH}"
          php --version
          composer-php install
          # ... 其他操作
      }
      
  3. 额外注意事项

    • 确认composer-php84包是否将可执行文件正确安装到STAGING_BINDIR_NATIVE目录
    • 交叉编译场景下,确保使用的是原生(native)版本的PHP和Composer,而非针对目标系统编译的版本——BUILD_DEPENDS会自动拉取native包(如php-native),需确认对应配方的命名规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 12:19:56