Я (собираюсь) написать приложение в Qt, которое будет работать на 3 основных операционных системах (Windows, Linux и Mac). Одной из особенностей этого приложения является то, что ему нужно USB, чтобы поговорить с частью пользовательского внешнего оборудования. Доступна ли кросс-платформенная библиотека USB?
Есть ли библиотека USB кросс-платформенной платформы С++?
Ответ 1
Попробуйте libusb.
Поддерживаемые операционные системы: Linux, FreeBSD, NetBSD, OpenBSD, Darwin, MacOS X (и Windows, через проект libusb-win32).
Но вы должны заметить, что он использует драйвер tt > kernel mode в Windows, который не сертифицирован WHQL, и это может быть проблемой в 64-разрядных Windows 7 и Windows Server 2008 R2. К сожалению, версия 1.2.0.0 libusb0.sys
имеет цифровую подпись.
Ответ 2
Я бы просто хотел обновить этот пост для всех, кто возвращается к нему в настоящее время...
Libusb (версия 0.1) с тех пор устарел. Современный стандарт - использовать libusb-1.0 или libusbx.
Лично я считаю, что есть много причин использовать libusbx. Это было написано разочарованными разработчиками libusb-0.1, которые хотели более частый цикл обновления и лучшую систему обслуживания ошибок.
Мои причины для предложения libusbx заключаются в следующем:
- не требует доступа к sudo
- работал намного лучше для меня из коробки с чтением входящих сообщений
- улучшенная поддержка и более частые ответы на ошибки/проблемы.
- асинхронная и синхронная поддержка отправки/получения сообщений
Предоставлено, libusb-1.0 поддерживает отчеты async/sync... но философия libusbx гораздо привлекательнее, а документация лучше.
Итак, это полностью зависит от вас, если вы или кто бы еще хотел узнать больше о библиотеках, историю очень легко найти в Интернете. Вы также можете увидеть этот вопрос стека для получения дополнительной информации о ближайшем предмете.