Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Custom widgets, Linker error 
V
    Опции темы
Annihilator
Дата 5.3.2010, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Кинул на форму в дизайнере CustomWidgetPlugin, добавил заголовок "analogclock.h", прописал зависимости $(QTDIR)\plugins\designer\customwidgetplugin.lib. Все работает, комплируется, линкуется. Часы на форме видны.
Решил использовать таким же образом IconEditor из книги Бланшет (QT4 2-е издание). Скомпилил плагин, получил dll/lib/exp. Закинул их туда же где и customwidgetplugin  ($(QTDIR)\plugins\designer).
Затем в главном проекте также кинул на форму, добавил заголовок, зависимости - все точно так же, но ошибка вылазит
Цитата

1>mainwindow.obj : error LNK2019: unresolved external symbol "public: __thiscall IconEditor::IconEditor(class QWidget *)" (??0IconEditor@@QAE@PAVQWidget@@@Z) referenced in function "public: void __thiscall Ui_MainWindow::setupUi(class QMainWindow *)" (?setupUi@Ui_MainWindow@@QAEXPAVQMainWindow@@@Z)
1>release\UsingIconEditor.exe : fatal error LNK1120: 1 unresolved externals


Уже на 100 раз все проверял. Где я туплю, подскажите. Идущие с SDK виджеты линкуются к проекту без проблем, сторонние - ни в какую.  smile 

(QT 4.6, VS2008 SP1)

Это сообщение отредактировал(а) Annihilator - 5.3.2010, 20:48

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  iconeditorplugin.rar 173,36 Kb


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
Annihilator
Дата 5.3.2010, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


bytegrinder
**


Профиль
Группа: Участник
Сообщений: 493
Регистрация: 21.11.2006
Где: Омск

Репутация: нет
Всего: 3



Проблему решил следующим способом:
Немного подправил *.pro file, чтоб в итоге он выглядел так

Код

CONFIG       += designer plugin debug_and_release
TARGET      = $$qtLibraryTarget($$TARGET)
TEMPLATE      = lib
QT += svg
QTDIR_build:DESTDIR     = $$QT_BUILD_TREE/plugins/designer

HEADERS       = iconeditor.h \
                iconeditorplugin.h
SOURCES       = iconeditor.cpp \
                iconeditorplugin.cpp
RESOURCES     = iconeditorplugin.qrc

# install
target.path = $$[QT_INSTALL_PLUGINS]/designer
sources.files = $$SOURCES $$HEADERS *.pro
sources.path = $$[QT_INSTALL_EXAMPLES]/designer/iconeditorplugin
INSTALLS += target sources


и чтобы избавиться от сообщений типа
Цитата

"warning C4273: 'staticMetaObject' : inconsistent dll linkage"

в заголовке iconeditor.h пишем макрос перед именем класса

Код

#include <QtDesigner/QDesignerExportWidget>
class QDESIGNER_WIDGET_EXPORT IconEditor : public QWidget
{
......


уффф...

Это сообщение отредактировал(а) Annihilator - 5.3.2010, 22:46


--------------------
Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0378 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.