Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года

Работа с Lusbapi в Qt C++

Вы не вошли.

 Поиск | Регистрация | Вход 

13.02.2019 14:10:18
#1

Участник
Здесь с 13.02.2019
Сообщений: 4

Работа с Lusbapi в Qt C++

Добрый день. При попытке использования библиотеки Lusbapi в Qt возникла проблема, а именно компилятор выдает следующую ошибку "***\main.cpp:21: error: undefined reference to `GetDllVersion'".

Для компиляции использую исходники и примеры для библиотеки lusbapi (версия 34), которые скачал с Вашего сайта.
Все требуемые файлы положил в папку проекта и подключил в *.pro файле:
HEADERS += \
mainwindow.h \
Lusbapi.h \
LusbapiTypes.h
Файл lusbapi.lib также в папке проекта. Пробовал его менять, брать из версий под VS, Borland. Прописывал через LIBS += "G:/ADC/DLL/Lib/MicroSoft/Lusbapi.lib" и по всякому. Ничего не помогает. Компилятор MinGW (Qt 5.12.1, MinGW 7.3.0 64 bit).

Как быть и что делать?

P.S. Схожая проблема описана вот здесь http://www.lcard.ru/forums/viewtopic.php?id=9946. В качестве решения предлагается скачать библиотеку собранную под MinGW и  даже даются ссылки. При попытке открыть скачанные архивы получаю ошибку из чего заключаю, что они битые.

13.02.2019 14:17:37
#2

Участник
Здесь с 13.02.2019
Сообщений: 4

Re: Работа с Lusbapi в Qt C++

Самое важное не упомянул: операционная система Windows 10 64 bit

13.02.2019 16:36:05
#3

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,291

Re: Работа с Lusbapi в Qt C++

Добрый день. Если Вы собираете 64-битным компилятором (при этом замечу, что программа не сможет работать на 32-битных ОС), то необходимо также иметь lusbapi.dll собранную 64-битным компилятором, а также иметь .lib файл для Вашего компилятора (mingw 64-бит).  Штатно в архиве этой версии не идет, но я выложил собранную 64-битную версию сюда - http://www.lcard.ru/download/lusbapi-64.zip. Нужно положить lusbapi.dll в выходную директорию с собранной программой (.exe), а к проекту подключить liblusbapi.a (для mingw для lib-файлов стандартное расширение .a и префикс lib) из папки mingw.

13.02.2019 16:45:42
#4

Сотрудник "Л Кард"
Здесь с 17.04.2014
Сообщений: 1,291

Re: Работа с Lusbapi в Qt C++

Подключение обычно выполняется как  (описано тут https://doc.qt.io/qt-5/third-party-libraries.html)
LIBS += -L<путь к lib-файлу> -l<имя файла без префикса lib и .a>

(где <описание значения>  заменяется на само значение)

а также добавляется путь к .h файлам библиотеки через
INCLUDEPATH += <путь к .h файлам lusbapi>


У меня .pro файл тестового консольного проекта выглядел так (архив распакован в c:/PRJ/lusbapi/lusbapi-64):
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp

LIBS += -Lc:/PRJ/lusbapi/lusbapi-64/mingw -llusbapi

INCLUDEPATH += c:/PRJ/lusbapi//lusbapi-64/include

Отредактировано Алексей L Card (13.02.2019 16:50:19)

04.03.2019 09:17:41
#5

Участник
Здесь с 13.02.2019
Сообщений: 4

Re: Работа с Lusbapi в Qt C++

Проблема решена. Необходимо было положить в папку с exe libusb.dll, которая там изначально и лежала. В процессе работы папку прибил, а повторно положить либу забыл... Итого потратил пол дня.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск