#c #qt #dll #qt5 #qmake
#c #qт #dll — файл #qt5 #qmake #c #qt #dll
Вопрос:
Пытаюсь создать проект, найденный @ uconfig , для проекта требуется poppler, и автор предоставил готовые заголовки ссылок и библиотеки DLL
Я скачал их, и это структура проекта
папка dll содержит все библиотеки DLL, а poppler содержит заголовочные файлы, pdf_extract.pro имеет следующее содержание
QT = core gui widgets xml
TARGET = pdf_extract
TEMPLATE = lib
DEFINES = DATASHEET_EXTRACTOR_EXPORT_LIB
DESTDIR = "$$PWD/../../bin"
CONFIG(release, debug|release) {
CONFIG = optimize_full
}
SOURCES =
$$PWD/datasheet.cpp
$$PWD/datasheetpackage.cpp
$$PWD/datasheetpin.cpp
$$PWD/datasheetbox.cpp
$$PWD/pdfdebugwidget/pdfdebugwidget.cpp
$$PWD/pdfdebugwidget/pdfdebugviewer.cpp
$$PWD/pdfdebugwidget/pdfdebugscene.cpp
$$PWD/pdfdebugwidget/pdfdebugitempage.cpp
$$PWD/pdfdebugwidget/pdfdebugitempin.cpp
$$PWD/pdfdebugwidget/pdfdebugitemtextbox.cpp
$$PWD/model/pdfdatasheet.cpp
$$PWD/model/pdfpage.cpp
$$PWD/model/pdftextbox.cpp
$$PWD/model/pdfpin.cpp
$$PWD/model/pdfcomponent.cpp
$$PWD/controller/pdfloader.cpp
HEADERS =
$$PWD/pdf_extract_common.h
$$PWD/datasheet.h
$$PWD/datasheetpackage.h
$$PWD/datasheetpin.h
$$PWD/datasheetbox.h
$$PWD/pdfdebugwidget/pdfdebugwidget.h
$$PWD/pdfdebugwidget/pdfdebugviewer.h
$$PWD/pdfdebugwidget/pdfdebugscene.h
$$PWD/pdfdebugwidget/pdfdebugitempage.h
$$PWD/pdfdebugwidget/pdfdebugitempin.h
$$PWD/pdfdebugwidget/pdfdebugitemtextbox.h
$$PWD/model/pdfdatasheet.h
$$PWD/model/pdfpage.h
$$PWD/model/pdftextbox.h
$$PWD/model/pdfpin.h
$$PWD/model/pdfcomponent.h
$$PWD/controller/pdfloader.h
LIBS = -L"$$PWD/../../bin"
LIBS = -L"$$PWD/dll/jpeg62.dll"
LIBS = -L"$$PWD/dll/libfreetype-6.dll"
LIBS = -L"$$PWD/dll/libopenjp2.dll"
LIBS = -L"$$PWD/dll/libpng12.dll"
LIBS = -L"$$PWD/dll/libpoppler-80.dll"
LIBS = -L"$$PWD/dll/libpoppler-qt5.dll"
LIBS = -L"$$PWD/dll/libtiff3.dll"
LIBS = -L"$$PWD/dll/zlib1.dll"
INCLUDEPATH = $$PWD/../../
LIBS = -lkicad
macx {
LIBS = -L /usr/local/lib
INCLUDEPATH = /usr/local/include
}
тем не менее, когда я пытаюсь создать проект, я получаю эти ошибки… я не уверен, что я делаю не так или чего не хватает
Ответ №1:
Согласно документации qmake, использование стандартов unix для указания связанных библиотек будет работать и в Windows. В любом случае, вместо
LIBS = -L"$$PWD/dll/jpeg62.dll"
Я бы попробовал
LIBS = "-L$$PWD/dll" - ljpeg62
или просто используйте стиль Windows:
LIBS = $$PWD/dll/jpeg62.dll
Комментарии:
1. Я использовал этот формат БИБЛИОТЕКИ = $$PWD/dll/jpeg62.dll и, похоже, это работает, спасибо
Ответ №2:
2 года спустя, но мне тоже было интересно,
#include <QLibrary>
поместите вашу *.dll в папку Debug / Release. например:
сборка-тест-Desktop_Qt_6_1_2_MinGW_64_bit-Отладка/debug
теперь просто:
QLibrary lib("myLibrary.dll");
if (!lib.load())
qDebug() << lib.errorString();
if (lib.load())
qDebug() << "library loaded";
в качестве альтернативы, вместо размещения библиотеки DLL в папке debug вы можете установить местоположение библиотеки DLL в
c:/path/to/dll/yourdll.dll