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

WSL执行yarn install遇ISO C++17动态异常规格错误求助

WSL环境下yarn install编译node-hid失败的解决方案

执行yarn install时,node-hid因无预编译二进制包触发本地编译,出现如下C++语法错误:

../src/HID.cc:71:5: 错误:ISO C++17不允许动态异常规格
   71 |     throw(JSException);

原因

node-hid旧版本代码使用了C17已废弃的动态异常声明语法,而Node.js 18+默认采用C17标准编译Addon,导致语法冲突。


解决方案1:升级node-hid到兼容版本

通过yarn的resolutions强制升级node-hid至支持C++17的版本(如>=2.1.0):
在package.json中添加:

"resolutions": {
  "node-hid": "^2.1.0"
}

然后重新执行:

yarn install

解决方案2:强制使用C++14编译

临时设置环境变量,让node-gyp用C++14标准编译:

export CXXFLAGS="-std=c++14"
yarn install

若需永久生效,可将环境变量添加到shell配置文件(如~/.bashrc):

echo 'export CXXFLAGS="-std=c++14"' >> ~/.bashrc
source ~/.bashrc
yarn install

解决方案3:移除不必要的依赖

检查项目依赖树,确认引入node-hid的包是否为项目必需。若无需硬件交互功能,可直接移除相关依赖,避免编译node-hid。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:31:01