2012-07-10 7 views
0

Я не могу запустить самый простой тип родного расширения Node.js, Hello World, и я не знаю почему.Node.js пример собственного расширения

Я использую пример здесь: 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

Можете ли вы поднять код? – Tamil

+0

Код приведен в примере, приведенном выше. Если он не компилируется, то либо моя система настроена неправильно, либо я делаю что-то очень неправильно. – stojanman

ответ

1

Очевидно, что пример теперь работает, после того как я завернул блок init в блок extern "C".

Все хорошо сейчас.

1

Кроме того, если вы случайно следуя этому примеру: https://www.cloudkick.com/blog/2010/aug/23/writing-nodejs-native-extensions/

ли иметь в виду, что функция инициализации вы даете NODE_MODULEне должно быть static! Похоже, что библиотека интроспекции или другие механизмы, которые Node.js использует для регистрации вашего модуля, не поддерживают чтение (имена) статических функций в C.

Надеюсь, это поможет всем, у кого есть подобные проблемы!

Смежные вопросы