2015-04-09 2 views
1

Я пытался скомпилировать node hello world addon, и когда я вызываю node-gyp configure build, он генерирует несколько ошибок.Ошибка сборки узла-gyb на hello world

../binding.cc:6:19: error: unknown type name 'FunctionCallbackInfo' 
    void Method(const FunctionCallbackInfo<Value>& args) { 
        ^
../binding.cc:6:39: error: expected ')' 
    void Method(const FunctionCallbackInfo<Value>& args) { 
             ^
../binding.cc:6:12: note: to match this '(' 
    void Method(const FunctionCallbackInfo<Value>& args) { 
      ^
../binding.cc:8:15: error: no matching constructor for initialization of 'v8::HandleScope' 
     HandleScope scope(isolate); 
       ^ ~~~~~~~ 
/***/***/.node-gyp/0.10.36/deps/v8/include/v8.h:473:3: note: candidate constructor not viable: no known conversion from 'v8::Isolate *' to 'const v8::HandleScope' for 1st 
      argument 
     HandleScope(const HandleScope&); 
    ^
/****/***/.node-gyp/0.10.36/deps/v8/include/v8.h:448:3: note: candidate constructor not viable: requires 0 arguments, but 1 was provided 
     HandleScope(); 
    ^
../binding.cc:9:3: error: use of undeclared identifier 'args' 
     args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world")); 
    ^
../binding.cc:9:37: error: no member named 'NewFromUtf8' in 'v8::String' 
     args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world")); 

В чем проблема?

ответ

1

Проблема заключается в том, что в примере предполагается, что вы используете узел 0.12, но вы используете Node 0.10 (0.10.36 по внешнему виду). Были большие (отсталые-несовместимые) изменения в том, как аддоны структурированы в узле 0.12.

Вот 0,10-совместимая версия: https://github.com/joyent/node/blob/aa35564ca1c9f3854bc5f7983f2f00cb51f67ffe/test/addons/hello-world/binding.cc

Удивительный пакет, который будет заботиться о многих различий между версиями узлов является nan.

+0

Thats the problem. Благодарю. – borgespires

+0

совместим ли он с узлом 4.2.2? –

+0

@ Carlos.V нет, но [попробуйте это] (https://nodejs.org/api/addons.html#addons_hello_world). – robertklep