我无法运行最简单类型的Node.js原生扩展,一个Hello World,我不知道为什么。
我在这里使用示例:http://nodejs.org/api/addons.html#addons_hello_world
node-gyp
运行得很好,但是当我在节点中尝试require
时,我收到错误:
Error: invalid argument at Object..node (module.js:472:11) at Module.load (module.js:348:31) at Function._load (module.js:308:12) at Module.require (module.js:354:17) at require (module.js:370:17) at repl:1:13 at REPLServer.eval (repl.js:80:21) at repl.js:190:20 at REPLServer.eval (repl.js:87:5) at Interface. (repl.js:182:12)
这是什么,以及如何在使用原生扩展时调试这样的错误?
答案 0 :(得分:1)
显然,在init
块中包含extern "C"
部分后,该示例现在可以正常工作了。
现在一切都很好。
答案 1 :(得分:1)
此外,如果您有任何机会关注此示例:https://www.cloudkick.com/blog/2010/aug/23/writing-nodejs-native-extensions/
请注意,您提供给NODE_MODULE
的初始化函数不得为static
!似乎内省库或Node.js用于注册模块的其他机制,不支持在C中读取静态函数(的名称)。
希望这有助于每个人遇到类似的问题!
答案 2 :(得分:1)
https://github.com/olalonde/node-notify
自述文件中有解释的一切。