node.js插件上未定义的符号

我正在尝试创build一些node.js插件。 在插件里面我有一个静态库的调用。 一切编译好,但是当我从JavaScript调用我的插件function,我得到以下内容:

module.js:356 Module._extensions[extension](this, filename); ^ Error: /home/.../Projects/NodeAddonComLibTest/build/Debug/addon.node: undefined symbol: _Z6ctest1Pi 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> (/home/.../Projects/NodeAddonComLibTest/doTest.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) 

我的插件代码如下:

 #include <iostream> #include <string.h> #include <stdlib.h> #include <node.h> #include <v8.h> using namespace v8; using namespace std; void ctest1(int *); Handle<Value> setPort(const Arguments& args){ HandleScope scope; if (args.Length() != 1) { ThrowException(Exception::TypeError(String::New("Wrong number of arguments."))); return scope.Close(Undefined()); } // ========================= printf("Calling static lib...\n"); int x=0; ctest1(&x); printf("Val c=%d\n", x); // ========================= return scope.Close(Number::New(args[0]->NumberValue())); } void Init(Handle<Object> exports) { exports->Set(String::NewSymbol("show"), FunctionTemplate::New(setPort)->GetFunction()); } NODE_MODULE(addon, Init) 

有人可以帮忙吗?

谢谢

void ctest1(int *); 必须用extern "C"

 extern "C" { void ctest1(int *); }