Название: Не компилируется проект после добавления пользовательского плагина виджетов Отправлено: Ingori от Апрель 10, 2017, 07:57 Здравствуйте. Не могу подключить к проекту плагин виджетов.
Последовательность действий следующая: Создаю новый проект, выбираю шаблон: "Пользовательский виджет Qt Designer", указываю компилятор: "Desktop Qt 5.8.0 MSVC2015 32bit", создаю 3 класса виджетов: Widget1, Widget2, Widget3. Все остальные настройки при создании нового проекта оставляю как есть. Затем собираю проект и копирую образовавшийся dll файл (наз. mycollectionplugin.dll) в Qt\Qt5.8.0_msvc\Tools\QtCreator\bin\plugins\designer, для отображения новых виджетов. Далее вновь создаю новый проект, "Приложение Qt Widgets". В файле проекта *.pro прописываю путь к lib файлу плагина и к заголовочным файлам. Если попытаться использовать новые виджеты, то при сборке получаю следующие ошибки: LNK2019: unresolved external symbol "public: __thiscall Widget1::Widget1(class QWidget *)" (??0Widget1@@QAE@PAVQWidget@@@Z) referenced in function "public: void __thiscall Ui_MainWindow::setupUi(class QMainWindow *)" (?setupUi@Ui_MainWindow@@QAEXPAVQMainWindow@@@Z) LNK1120: 1 unresolved externals Кстати эти же ошибки возникают если lib файл в принципе не подключать. (При компиляции проекта mingw lib файл вообще не появляется.) Pro файл плагина виджетов Цитировать CONFIG += plugin debug_and_release TARGET = $$qtLibraryTarget(mycollectionplugin) TEMPLATE = lib HEADERS = widget1plugin.h widget2plugin.h widget3plugin.h mycollection.h SOURCES = widget1plugin.cpp widget2plugin.cpp widget3plugin.cpp mycollection.cpp RESOURCES = icons.qrc LIBS += -L. greaterThan(QT_MAJOR_VERSION, 4) { QT += designer } else { CONFIG += designer } target.path = $$[QT_INSTALL_PLUGINS]/designer INSTALLS += target include(widget2.pri) include(widget1.pri) include(widget3.pri) Сориентируйте пожалуйста в чем ошибка? Название: Re: Не компилируется проект после добавления пользовательского плагина виджетов Отправлено: ssoft от Апрель 10, 2017, 16:49 Либо нет реализации Widget1::Widget1(class QWidget *), либо класс не экспортирован __declspec(dllexport)
Можно прикрутить что-то подобное Код
В файле проекта плагина добавить Код: ... Название: Re: Не компилируется проект после добавления пользовательского плагина виджетов Отправлено: Ingori от Апрель 10, 2017, 19:01 Реализация конструктора Widget1::Widget1(class QWidget *) есть, а вот вариант с экспортированием проверю.
|