не может найти - Нет такого файла или каталога - libusb - Ubuntu 32 & amp; 64-битный

Поместите его в свой crontab.

Откройте таблицу cron:

crontab -e

Теперь добавьте:

*/5 * * * * /path/to/script.sh

Don Не забудьте сделать исполняемый файл сценария заранее.

Поскольку ваш скрипт зависит от X, вероятно, будет хорошей идеей добавить DISPLAY в среду сценария:

*/5 * * * * DISPLAY=:0 /path/to/script.sh

Заменить :0 на ваш фактический DISPLAY (может быть найден echo $DISPLAY из интерактивного сеанса).

При необходимости вы можете добавить переменную среды XAUTHORITY тоже:

*/5 * * * * DISPLAY=:0 XAUTHORITY="~/.Xauthority" /path/to/script.sh

Снова вы можете найти значение echo $XAUTHORITY.

1
задан 4 November 2017 в 00:47

2 ответа

Я не совсем уверен, чего вы пытаетесь достичь; вам нужен libusb для работы на 32 и 64 бит? Или только один из них? В любом случае библиотека должна быть установлена ​​специально для правильной архитектуры. По умолчанию команда установки будет устанавливать только свою «собственную» версию библиотеки. Вы можете сказать это, чтобы установить обе версии:

sudo apt-get install libusb-1.0-0-dev:i386 sudo apt-get install libusb-1.0-0-dev:amd64

для 32 и 64 бит, соответственно. Вы также можете напрямую проверить файлы библиотеки, в моей системе (16.04), они живут в

32bit: /usr/lib/i386-linux-gnu/ 64bit: /usr/lib/x86_64-linux-gnu

(если вы сомневаетесь, dpkg-query -L libusb-1.0-0-dev показывает, где они установлены.)

Что касается libusb, который вы скомпилировали, вам нужно отслеживать, что вы используете правильную версию при связывании своей программы. Возможно, вы смешиваете 32 и 64-битные версии в / usr / local / lib? gcc / ld не знал бы, чтобы их не разделить.

Что касается сеанса отладки, gdb ist просто пытается показать исходные строки, но не знает, где найти исходные файлы библиотеки. В противном случае я не вижу ничего, что здесь явно не так.

0
ответ дан 18 July 2018 в 03:56

Я не совсем уверен, чего вы пытаетесь достичь; вам нужен libusb для работы на 32 и 64 бит? Или только один из них? В любом случае библиотека должна быть установлена ​​специально для правильной архитектуры. По умолчанию команда установки будет устанавливать только свою «собственную» версию библиотеки. Вы можете сказать это, чтобы установить обе версии:

sudo apt-get install libusb-1.0-0-dev:i386 sudo apt-get install libusb-1.0-0-dev:amd64

для 32 и 64 бит, соответственно. Вы также можете напрямую проверить файлы библиотеки, в моей системе (16.04), они живут в

32bit: /usr/lib/i386-linux-gnu/ 64bit: /usr/lib/x86_64-linux-gnu

(если вы сомневаетесь, dpkg-query -L libusb-1.0-0-dev показывает, где они установлены.)

Что касается libusb, который вы скомпилировали, вам нужно отслеживать, что вы используете правильную версию при связывании своей программы. Возможно, вы смешиваете 32 и 64-битные версии в / usr / local / lib? gcc / ld не знал бы, чтобы их не разделить.

Что касается сеанса отладки, gdb ist просто пытается показать исходные строки, но не знает, где найти исходные файлы библиотеки. В противном случае я не вижу ничего, что здесь явно не так.

0
ответ дан 24 July 2018 в 17:58
  • 1
    Спасибо за ваш ответ, у меня есть 32 и amp; 64-разрядный Ubuntu отдельно в виртуальной машине. Я просто пытался выполнить мои коды в обоих. Я также добавил: i1386 и: amd64 к моему коду и проверил эти каталоги. Я не знаю, почему моя система работает так, а также почему мой код не может открыть мое устройство. – CodeFreak 4 November 2017 в 17:21

Другие вопросы по тегам:

Похожие вопросы: