Здравствуйте, гость ( Вход | Регистрация )
sidsukana | Дата 13.5.2014, 12:31 |
Проблема решена. Причина была в неправильном имени плагина в макросе импорта. | |
sidsukana | Дата 13.5.2014, 9:07 |
Добрый день! Бьюсь с проблемой, не могу понять что не правильно. Хочу сделать плагин, который загружается в основную программу статически Сделал все по статьям http://qt-project.org/doc/qt-5/plugins-howto.html и http://qt-project.org/doc/qt-5/qtwidgets-t...ting-the-plugin Получаю ошибку при компиляции основной программы (проекта) Цитата debug/main.o: In function `ZN23StaticmpqPluginInstanceC1Ev': C:\Sources\qsw\build/../qsw/main.cpp:6: undefined reference to `qt_static_plugin_mpq()' Windows 7 x64, Qt 5.2.1 MinGW 32-bit. QtCreator 3.1 |
|
novichkov | Дата 1.12.2012, 15:00 |
Я хочу в программе и в плагине к ней использовать один класс наименее затратным способом. Одно из решений - выделить этот класс в отдельную библиотеку и линковать к ней и программу, и плагин. Есть ли другие решения? | |
Litkevich Yuriy | Дата 30.11.2012, 19:56 |
novichkov, я честно говоря не понял, что ты пытаешься сделать. Ты хочешь в одном плагине использовать другой плагин? |
|
Iron Bug | Дата 30.11.2012, 17:59 |
я не юзаю Qt, но беглый поиск в гугле выдал банальный макрос для импорта-экспорта (аналог которого без Qt просто пишут руками) Цитата #ifndef CORE_LIBRARY #define APP_CORE_EXPORTS Q_DECL_IMPORT #else #define APP_CORE_EXPORTS Q_DECL_EXPORT #endif соответственно, при классах должен стоять модификатор APP_CORE_EXPORTS, а при библиотеке - глобальный макрос CORE_LIBRARY. как-то так должно быть. |
|
novichkov | Дата 30.11.2012, 10:53 |
Вот файл проекта одного из плагинов:
Может, я тупой, но я не понимаю, как заменить
на что-то вроде
|
|
Iron Bug | Дата 30.11.2012, 10:10 |
не очень понятно, зачем включать cpp, если требуются только классы. все библиотеки (и плагины, как их разновидность) имеют открытые входы для линковки в процессе загрузки. это не вызывает проблем с их компиляцией. | |
novichkov | Дата 30.11.2012, 8:51 |
Подскажите, пожалуйста, как правильно разрешить такую проблему: есть Qt плагин, который использует некоторые классы, определенные в папке с исходным кодом основной программы. Чтобы нормально слинковать плагин, мне пришлось включить файлы cpp этих классов в файл pro плагина, что фактически означает дублирование кода и разбухание размена плагина. Можно ли как-нибудь использовать основной исполняемый файл как библиотеку, или обязательно нужно выносить общие классы в отдельную разделяемую библиотеку? | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 8:46 |