NAPI node-addon-api 编译报错 error C1083: “napi.h”: No such file or directory
省流
修改 binding.gyp 的 node-addon-api 查找语法
{"targets": [{"target_name": "addon","sources": ["addon.cpp"],
- "include_dirs": ["<!(node -p \"require('node-addon-api').include\")"],
+ "include_dirs": ["<!@(node -p \"require('node-addon-api').include\")"],"cflags!": ["-fno-exceptions"],"cflags_cc!": ["-fno-exceptions"],"defines": ["NAPI_DISABLE_CPP_EXCEPTIONS"],"msvs_settings": {"VCCLCompilerTool": {"ExceptionHandling": 1}},}]
}
解释
编译 NAPI addon 模块时,可以在当前 cwd 目录安装开发依赖 npm install --save-dev node-addon-api
,随后在 node_modules/node-addon-api/napi.h
找到头文件。
在 binding.gyp
通过配置 <!()
和 <!@()
可以执行命令解析输出为字符串或列表嵌入当前 scope。
然而,这个命令在 windows 上的输出似乎不是很干净,会导致 <!()
解析的路径,在盘符前面有异常的 ..///
导致 include_dir 错误
改成 <!@
莫名其妙好了