Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сборка QT DLL 
:(
    Опции темы
Artemon
Дата 24.9.2009, 19:36 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 2
Всего: 20



Собрал dll из исходников, в данной dll используются классы наследованные от QObject все норм собралось. Все классы в данной DLL сделал экспортируемыми.

Начал собирать вторую dll, в которой используется первая и тут мне linker постоянно выдает ошибку о том, что нет реализации метода MyClass::staticMetaObject.
Я взял и включил в проект moc файлы, сгенерированный от первой dll и все слинковалось.

Вопрос: почему moc файлы не слинковались в первую dll ?

Это обычная практика, или нужно что-то дополнительно указать, чтобы moc файлы линковались вместе с остальными классами ?

P.S
VS2005 + Qt 4.3 Коммерческая + интегратор для VS2005

Добавлено через 14 минут и 56 секунд
Похоже я ошибся, moc линкуется вместе с классом, но тогда вопрос почему компилятор ругается, что не хватает реализации метода (который как раз в moc) ?

Это сообщение отредактировал(а) Artemon - 24.9.2009, 19:37


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Artemon
Дата 24.9.2009, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 2
Всего: 20



Вношу поправку, линкер не видит реализацию КЛАССА class QMetaObject staticMetaObject.

Посмотрел что за класс, оказывается это системный класс Qt.


Вот так выглядит сообщение об ошибке.

Код

Error    3    error LNK2001: unresolved external symbol "public: static struct QMetaObject const aCfg::staticMetaObject" (?staticMetaObject@aCfg@@2UQMetaObject@@B)    aext_meta.obj    


Почему данное сообщение пропадает, когда я добавляю к проекту Moc файл, ведь в этом файле нет реализации данного класса. В нем содержится только инициализация структуры, следующего вида:

Код

const QMetaObject aCfg::staticMetaObject = 
{
     { 
     &QObject::staticMetaObject, 
     qt_meta_stringdata_aCfg,
     qt_meta_data_aCfg, 
     0 
     }
};




--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
andrew_121
Дата 25.9.2009, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 11
Всего: 33



исходник скорми moc-у


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
Artemon
Дата 26.9.2009, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: 2
Всего: 20



Дело в том, что они и так скармливаются и генерируется куча файлов типа myclass_moc.cpp.
В этих moc файлах караз таки и есть staticMetaObject.


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

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

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


 




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


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

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