0

我有以下结构:

~/Desktop/hellonode$ ls 
build    rs232.h    testnode.js    helloworld.cc    helloworld.node    rs232.c

并在rs232.h

int OpenComport(int, int);

但是当我尝试创建一个节点原生插件并使用以下代码时:

#include "rs232.h"

using namespace v8;

void init(Handle<Object> target) {
  int cport_nr=0;        /* /dev/ttyS0 (COM1 on windows) */

  if(OpenComport(cport_nr, bdrate))
  {
    printf("Can not open comport\n");
    return;
  }

  target->Set(String::NewSymbol("hello"),
      FunctionTemplate::New(Method)->GetFunction());
}

我使用 node-waf 构建插件

一切都编译得很好,但是,当我尝试运行它时,我收到以下错误:

~/Desktop/hellonode$ node testnode node: symbol lookup error: <~>/Desktop/hellonode/build/Release/helloworld.node: undefined symbol: OpenComport

4

1 回答 1

1

这是链接错误,而不是编译器错误。在OpenComport中定义rs232.c,并且您是否链接rs232.c到您的可执行文件?

于 2012-04-14T15:39:40.380 回答