node.js ftdi模块抛出错误:libftd2xx.so:无法打开共享对象文件

我安装了Linux-ARM-FTDI驱动程序1.1.12,如下所述的自述文件: http : //www.ftdichip.com/Drivers/D2XX/Linux/ReadMe-linux.txt ,并成功testing了EEPROM /例如检查安装,它给了我一个正确的输出我的USB设备。 然后我在安装ftdi软件包时遇到了一些麻烦,因为没有findftd2xx.h。 我遵循这个描述: https ://forum.sparkfun.com/viewtopic.php?p = 50378和复制ftd2xx.h和WinTypes.h到/ usr / loacl / include后,我可以通过npm安装ftdi没有问题。

现在当我尝试要求ftdi时:

var ftdi = require('ftdi'); 

我得到以下错误:

 /home/utilite/node/usb_socket/node_modules/ftdi/node_modules/bindings/bindings.js:83 throw e ^ Error: libftd2xx.so: cannot open shared object file: No such file or directory 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 bindings (/home/utilite/node/usb_socket/node_modules/ftdi/node_modules/bindings/bindings.js:76:44) at Object.<anonymous> (/home/utilite/node/usb_socket/node_modules/ftdi/index.js:3:31) 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) 

这里是依赖:

 ls -l /usr/local/lib/libftd2xx.* -rw-r--r-- 1 root root 241478 Jun 16 14:17 /usr/local/lib/libftd2xx.a lrwxrwxrwx 1 root root 34 Jun 16 14:18 /usr/local/lib/libftd2xx.so -> /usr/local/lib/libftd2xx.so.1.1.12 -rwxr-xr-x 1 root root 229597 Jun 16 14:17 /usr/local/lib/libftd2xx.so.1.1.12 utilite@utilite-ubuntu-desktop:~/node/usb_socket$ ldd /usr/local/lib/libftd2xx.so libpthread.so.0 => /lib/arm-linux-gnueabi/libpthread.so.0 (0x401ff000) libdl.so.2 => /lib/arm-linux-gnueabi/libdl.so.2 (0x400c0000) librt.so.1 => /lib/arm-linux-gnueabi/librt.so.1 (0x400ae000) libgcc_s.so.1 => /lib/arm-linux-gnueabi/libgcc_s.so.1 (0x40013000) libc.so.6 => /lib/arm-linux-gnueabi/libc.so.6 (0x4021a000) /lib/ld-linux.so.3 (0x4002d000) 

看起来对我好。

Targt系统:

 Linux utilite-ubuntu-desktop 3.0.35-cm-fx6-4 #123 SMP Thu Sep 12 10:41:30 IST 2013 armv7l armv7l armv7l GNU/Linux node.js version: 0.10.22 (highest 0.10.x version to run on the target) 

有什么build议么?

在链接器路径中是/ usr / local / lib?

我不认为在新版本的ubuntu中,默认情况下/ usr / local / lib是链接的。

 ldconfig /usr/local/lib/ 

将其添加到链接器缓存并进行测试。

应该将其添加到.conf文件/etc/ld.so.conf.d/,如果这可以解决您的问题。

https://unix.stackexchange.com/questions/67781/use-shared-libraries-in-usr-local-lib

我没有经验的节点,但你可以在可执行文件(而不是图书馆)上运行ldd ? 它可能会显示libftd2xx.so未找到,因此是错误。

它可能与编译标志(和指向/ usr / local / lib的rpath )有关。 看看这个相关的答案