0

我无法运行最简单的 Node.js 原生扩展类型,即 Hello World,我不知道为什么。

我在这里使用示例:http ://nodejs.org/api/addons.html#addons_hello_world

node-gyp运行得很好,但是当我在节点中尝试require它时,我得到一个错误:

  错误:无效参数
    在 Object..node (module.js:472:11)
    在 Module.load (module.js:348:31)
    在 Function._load (module.js:308:12)
    在 Module.require (module.js:354:17)
    在需要 (module.js:370:17)
    在回复:1:13
    在 REPLServer.eval (repl.js:80:21)
    在 repl.js:190:20
    在 REPLServer.eval (repl.js:87:5)
    在界面。(repl.js:182:12)

这是什么,在使用本机扩展时如何调试这样的错误?

4

3 回答 3

1

此外,如果您有机会遵循此示例:https ://www.cloudkick.com/blog/2010/aug/23/writing-nodejs-native-extensions/

请记住,您给予的初始化函数NODE_MODULE 一定不能static!似乎 Node.js 用于注册模块的自省库或其他机制不支持读取 C 中的静态函数(名称)。

希望这可以帮助遇到类似问题的每个人!

于 2012-07-10T22:57:24.080 回答
1

显然,在我将该init部分包装在一个extern "C"块中之后,该示例现在可以工作了。

现在一切都很好。

于 2012-07-10T22:30:03.523 回答
1

https://github.com/olalonde/node-notify

自述文件中解释了所有内容。

于 2012-12-01T16:50:28.410 回答