2013-11-20 2 views
1

Я пишу node.js модуль, используя C++ и node-gyp, но когда я исправить все ошибки, как в this вопрос, который включал избавляется от избыточных заявлений, добавивИспользование #ifndef перерывы модуль узла Gyp

#ifndef BUILDING_NODE_EXTENSION 

и

#endif 

в мои файлы. Тогда я получаю ошибку

module.js:356 
    Module._extensions[extension](this, filename); 
          ^
Error: Symbol graph_module not found. 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Module.require (module.js:364:17) 
    at require (module.js:380:17) 
    at Object.<anonymous> (/Users/home/project/test.js:1:75) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 

но когда я удалить их все работает нормально, а я просто получать предупреждения компилятора как

CXX(target) Release/obj.target/graph/graph/addon.o 
../graph/addon.cc:2:9: warning: 'BUILDING_NODE_EXTENSION' macro redefined 
#define BUILDING_NODE_EXTENSION 

Я не понимаю, почему это было бы, и я хотел бы избавьтесь от предупреждений компилятора, если это возможно. Есть идеи?

ответ

0

Похоже, вы либо забыли использовать NODE_MODULE макрос или имя модуля в binding.gyp не соответствует тому, что используется в NODE_MODULE

0

Чтобы избавиться от предупреждений компилятора, попробуйте заменить

#define BUILDING_NODE_EXTENSION 

с

#define BUILDING_NODE_EXTENSION 1