node-api.h问题,同时使用node-gyp

时间:2018-09-10 05:43:03

标签: node.js npm node-gyp

这是node-gyp配置构建&&节点index.js之后的控制台

  
      
  • 在../ test.cc:1:0:
  • 中包含的文件中   
  • :0:26:错误:“-”令牌之前的预期初始化程序
  •   
  • /home/vir4un/.node-gyp/10.9.0/include/node/node_api.h:74:15:注意:在宏“ NAPI_C_CTOR”的定义中
  •   
  • 静态void fn(void)属性((构造函数)); \
  •   
  • /home/vir4un/.node-gyp/10.9.0/include/node/node_api.h:104:3:注意:在扩展宏“ NAPI_MODULE_X” NAPI_MODULE_X(modname,   regfunc,NULL,0)//否(可读性/ null_usage)
  •   
  • ../ test.cc:47:1:注意:扩展宏“ NAPI_MODULE” NAPI_MODULE(NODE_GYP_MODULE_NAME,Init)
  •   
  • ../ test.cc:47:13:注意:扩展宏“ NODE_GYP_MODULE_NAME” NAPI_MODULE(NODE_GYP_MODULE_NAME,Init)
  •   

  
      
  • gyp错误!构建错误
  •   
  • gyp错误!堆栈错误:make失败,退出代码:2
  •   
  • gyp错误!堆栈在ChildProcess.onExit(/usr/lib/node_modules/node-gyp/lib/build.js:262:23)
  •   
  • gyp错误!堆栈在ChildProcess.emit(events.js:182:13)
  •   
  • gyp错误!堆栈位于Process.ChildProcess._handle.onexit(internal / child_process.js:239:12)
  •   
  • gyp错误!系统Linux 4.15.0-33-通用
  •   
  • gyp错误!命令“ / usr / bin / node”“ / usr / bin / node-gyp”“配置”“ build”
  •   
  • gyp错误! cwd / home / vir4un / app / tanya / app
  •   
  • gyp错误!节点-v v10.9.0
  •   
  • gyp错误! node-gyp -v v3.8.0
  •   
  • gyp错误!不好
  •   

这也是调试日志:

  
      
  1. 信息以“ ok”结尾的话就可以了
  2.   
  3. 详细cli ['/ usr / bin / node','/ usr / bin / npm','开始']
  4.   
  5. 使用npm@6.4.1的信息
  6.   
  7. 使用node@v10.9.0的信息
  8.   
  9. 详细运行脚本['prestart','start','poststart']
  10.   
  11. 信息生命周期app@1.0.0~prestart:app@1.0.0
  12.   
  13. 信息生命周期app@1.0.0~start:app@1.0.0
  14.   
  15. 详细的生命周期app@1.0.0~start:生命周期中的unsafe-perm true
  16.   
  17. 详细生命周期app@1.0.0~start:路径:/ usr / lib / node_modules / npm / node_modules / npm-lifecycle / node-gyp-bin:/ home / vir4un / app / tanya / app / node_modules /。 bin:/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ snap / bin
  18.   
  19. 详细的生命周期app@1.0.0~start:CWD:/ home / vir4un / app / tanya / app
  20.   
  21. 傻瓜生命周期app@1.0.0~start:Args:['-c','node-gyp configure build && node index.js']
  22.   
  23. 傻生命周期app@1.0.0~start:返回:代码:1信号:空
  24.   
  25. 信息生命周期app@1.0.0~start:无法执行启动脚本
  26.   
  27. 详细堆栈错误:app@1.0.0开始:node-gyp configure build && node index.js
  28.   
  29. 详细堆栈退出状态1
  30.   
  31. EventEmitter上的详细堆栈。 (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
  32.   
  33. EventEmitter.emit上的详细堆栈(events.js:182:13)
  34.   
  35. ChildProcess上的详细堆栈。 (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
  36.   
  37. ChildProcess.emit上的详细堆栈(events.js:182:13)
  38.   
  39. maybeClose处的详细堆栈(internal / child_process.js:961:16)
  40.   
  41. Process.ChildProcess._handle.onexit上的详细堆栈(internal / child_process.js:250:5)
  42.   
  43. 详细的pkgid app@1.0.0
  44.   
  45. 详细的cwd / home / vir4un / app / tanya / app
  46.   
  47. 冗长的Linux 4.15.0-33-通用
  48.   
  49. 详细argv“ / usr / bin / node”“ / usr / bin / npm”“开始”
  50.   
  51. 详细节点v10.9.0
  52.   
  53. 详细npm v6.4.1
  54.   
  55. 错误代码ELIFECYCLE
  56.   
  57. 错误errno 1
  58.   
  59. 错误app@1.0.0开始:node-gyp configure build && node index.js
  60.   
  61. 错误退出状态1
  62.   
  63. 错误在app@1.0.0启动脚本处失败。
  64.   
  65. 错误这可能不是npm的问题。上面可能还有其他日志记录输出。
  66.   
  67. 详细退出[1,正确]
  68.   

这是test.cc:

#include <node_api.h>
     

napi_value MyFunction(napi_env env,napi_callback_info信息){
  napi_status状态; size_t argc = 1; int number = 0; napi_value   argv [1];状态= napi_get_cb_info(env,info,&argc,argv,NULL,   NULL);

     

if(status!= napi_ok){       napi_throw_error(env,NULL,“无法解析参数”); }

     

状态= napi_get_value_int32(env,argv [0],&number);

     

if(status!= napi_ok){       napi_throw_error(env,NULL,“无效的数字被作为参数传递”); } napi_value myNumber;数字=数字* 2;状态   = napi_create_int32(env,number,&myNumber);

     

if(status!= napi_ok){       napi_throw_error(env,NULL,“无法创建返回值”); }

     

返回myNumber; }

     

napi_value初始化(napi_env env,napi_value导出){napi_status   状态; napi_value fn;

     

状态= napi_create_function(env,NULL,0,MyFunction,NULL,&fn);   如果(状态!= napi_ok){       napi_throw_error(env,NULL,“无法包装本机函数”); }

     

状态= napi_set_named_property(env,出口,“ my_function”,fn);
  如果(状态!= napi_ok){       napi_throw_error(env,NULL,“无法填充出口”); }

     

返回出口; }

     

NAPI_MODULE(NODE_GYP_MODULE_NAME,初始化)

//他们说它在node_api.h上,我什至不编辑原始文件。它在里面杀死了我。

1 个答案:

答案 0 :(得分:1)

Mosy可能在模块名称中使用了不正确的符号。这样的hello-world。禁止使用符号-

相关问题