Модуль node.js ftdi выдает ошибку: libftd2xx.so: невозможно открыть файл общих объектов

Я установил драйверы Linux-ARM-FTDI 1.1.12, как в описанном файле readme: http://www.ftdichip.com/Drivers/D2XX/Linux/ReadMe-linux.txt, а также успешно протестировал EEPROM / пример чтения, чтобы проверить установку, и он дает мне правильный вывод мое USB-устройство. Затем у меня возникли проблемы с первой установкой пакета ftdi, потому что ftd2xx.h не был найден. Я следил за этим описанием: https://forum.sparkfun.com/viewtopic.php?p=50378 и после копирования ftd2xx.h и WinTypes.h в / usr / loacl / include я мог без проблем установить ftdi через npm.

Теперь, когда я пытаюсь потребовать 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)

Какие-либо предложения?


person B Piltz    schedule 17.06.2014    source источник


Ответы (2)


есть / usr / local / lib в вашем пути компоновщика?

Я не думаю, что / usr / local / lib связан по умолчанию в новых версиях ubuntu.

ldconfig /usr/local/lib/

добавить его в кеш компоновщика и протестировать.

следует добавить его в файл .conf /etc/ld.so.conf.d/, если это решит вашу проблему.

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

person richmb    schedule 24.06.2015

У меня нет опыта работы с node, но можете ли вы запустить ldd в исполняемом файле (не в библиотеке)? Это может показать, что libftd2xx.so не найден, отсюда и ошибка.

Это может иметь какое-то отношение к флагам компиляции (и rpath, указывающим на / usr / local / lib). Взгляните на этот связанный ответ

person George Profenza    schedule 01.04.2015
comment
Большое спасибо! Я не могу пробовать это быстро, так как в настоящее время я не работаю над этой веткой. Но пока это может быть полезно для других. - person B Piltz; 02.04.2015