4

我正在尝试为 USB 设备的 Node Js 编写 C++ 模块。它是一个 accesio USB-IIRO-16 I/O 板 (accesio.com/MANUALS/USB-IIRO-16.PDF)。我在 Ubuntu 12.04 LTS 上安装了 linux 驱动程序和 libusb。我的示例应用程序(用 C++ 编写)在 I/O 板上运行良好,并且能够在 C++ 中正常通信。我是编写 nodejs 模块的新手,而且从大学开始也没有编写过 C++。我的模块编译也很好。我正在使用他们在示例应用程序中使用的 accesio 提供的 USBDeviceManager 类。

我用它作为模块的基础: https ://github.com/kkaefer/node-cpp-modules/tree/master/06_objects

我用示例应用程序中使用的 accesio 提供的 USBDeviceManager 替换了 hpp 文件,并添加了 ObjectWrap

class USBDeviceManager : public node::ObjectWrap {...}

其余部分与 USBDeviceManager 以及示例模块代码相同。一切编译正常,但是,当我运行 node run.js 时,我收到:

module.js:485
process.dlopen(filename, module.exports);
      ^
Error: /home/parallels/Documents/node-accesio/build/Release/accesio.node: undefined symbol:    _ZTVN6AIOUSB16USBDeviceManagerE
at Object.Module._extensions..node (module.js:485:11)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/home/parallels/Documents/node-accesio/run.js:1:77)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)

我已经尝试了很多移动代码和一些在线文档,但现在不知道该怎么做。cpp 和 js 文件现在仍然与示例模块应用程序相同(https://github.com/kkaefer/node-cpp-modules/tree/master/06_objects)。唯一不同的是将 USBDeviceManager 添加到 hpp 文件和 AIOUSB 命名空间。

基本上我想做的是能够读/写类似于此处的示例应用程序的 I/O 板:http: //accesio.com/files/packages/AIOUSB-Latest.tar.gz

4

0 回答 0