Я пытаюсь создать приложение в QT, которое использует библиотеку libmodbus.Я использую MinGW 5.3 (Windows 7).Приложение будет скомпилировано без ошибок, но вылетает при попытке запуска.Отладочное сообщение гласит:
Во время запуска программы выход с кодом 0xc0000135
Если дважды щелкнуть созданный исполняемый файл, возникает ошибка:
libmodbus-5.dll отсутствует
на моем компьютере.
Libmodbus был собран с тем же компилятором.Включаемые файлы находятся в ../../codelibrary/MinGW63/libmodbus-master/src
, а файлы компоновщика - в ../../codelibrary/QtMinGW53/libmodbus-master/src/.libs
(папка .libs
содержит и libmodbus.dll.a
, и libmodbus-5.dll
).
Если я добавлю эту библиотеку с помощью стороннего разработчика Qtмастер библиотеки, затем я получаю следующее в моем .pro
файле:
win32: LIBS += -L$$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src/.libs/ -llibmodbus.dll
INCLUDEPATH += $$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src
DEPENDPATH += $$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src
win32:!win32-g++: PRE_TARGETDEPS += $$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src/.libs/libmodbus.dll.lib
else:win32-g++: PRE_TARGETDEPS += $$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src/.libs/liblibmodbus.dll.a
Это дает мне ошибку:
-1: ошибка: нет правила для создания цели '../../codelibrary/MinGW63/libmodbus-master/src/.libs/liblibmodbus.dll.a ', необходимый для' debug \ QTRosemount.exe '.Стоп.
Затем я попытался изменить файл .pro
на:
LIBS += -L$$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src/.libs/libmodbus-5.dll
INCLUDEPATH += $$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src
DEPENDPATH += $$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src
PRE_TARGETDEPS += $$PWD/../../codelibrary/QtMinGW53/libmodbus-master/src/.libs/libmodbus.dll.a
В этом случае он будет создан без ошибок и сразу завершится с кодом 0xc0000135 и отсутствующим libmodbus-5.dll
.Я пробовал много вариантов путей .pro
, которые получают ту же ошибку.
Примечание: Я смог запустить консольные приложения в Codeblocks с этой библиотекой, не уверен, что ясталкиваюсь с Qt.
Как это исправить?