我安装了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
)有关。 看看这个相关的答案