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

如何在Electron中重建epoll包并解决openssl_fips未定义报错

问题核心原因

你遇到的openssl_fips is not defined报错,本质是旧版本Electron(你用的v8.2.0)的node-gyp配置和当前编译环境的openssl参数不匹配,触发了binding.gyp里的条件判断异常,而epoll是你用到的树莓派GPIO相关依赖的底层原生包,必须适配Electron的运行时版本编译才能正常使用。

可行解决步骤

  • 方案1:手动传入缺失的配置变量绕开报错
    执行rebuild命令时直接给gyp传入空的openssl_fips参数,跳过配置判断:

    OPENSSL_FIPS="" npx electron-rebuild -f -w epoll
    

    参数说明:-f强制重编译,-w epoll指定只重编译epoll包,节省时间。

  • 方案2:降级electron-rebuild到适配Electron 8.x的版本
    你当前使用的electron-rebuild@3.2.3对Electron 8.x的兼容性很差,换成2.x分支的适配版本:

    # 卸载当前版本
    npm uninstall electron-rebuild
    # 安装适配旧版Electron的版本
    npm install --save-dev electron-rebuild@2.3.5
    # 重新执行全量重编译
    npx electron-rebuild
    
  • 方案3:匹配Node.js版本
    Electron 8.2.0对应的内置Node大版本是12.x,如果你的树莓派系统全局安装的Node.js版本高于12.x,会导致原生包编译时的头文件版本不匹配,建议用nvm切换到Node.js 12.x版本后,删除node_modules和package-lock.json重新安装依赖,再执行rebuild。

  • 方案4:处理依赖冲突
    你的依赖里同时存在rpi-gpio和rpio两个GPIO操作库,其中rpi-gpio依赖的epoll版本非常老旧,你可以先升级epoll到最新兼容版本再编译:

    npm install epoll@latest --save
    npx electron-rebuild
    

    或者移除rpi-gpio依赖,只保留rpio,避免底层依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 09:57:04