Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [QT] ошибка с vtable, undefined reference to `vtable for ...` 
V
    Опции темы
Dimass
  Дата 26.2.2008, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Всем привет. У меня какая то странная ошибка. Пишу простейшую программу с использованием Qt 4.3.0
Компилирую, и вылазиет странная ошибка 

 undefined reference to `vtable for MyClass'

Ничего не пойму что за виртуальную функцию я должен переопределить. В мануале, в описании похожего примера ничего не написано. Даже готовый код который должен компилироваться этого не делает с той же ошибкой. 

Код

#include <QObject>
/////////////////////////////////////////
class MyClass : public QObject
{
    Q_OBJECT
private:
    int i;

public:
    MyClass(int val)
    {
        i = val;
    }
};
//////////////////////////////////////////

int main(int argc, char *argv[])
{
    MyClass cl(10);
}




PM MAIL   Вверх
nickless
Дата 26.2.2008, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 13
Всего: 181



Вот это
Цитата(Dimass @  26.2.2008,  12:03 Найти цитируемый пост)
Q_OBJECT

определяет несколько виртуальных методов для мета-объектов, по этому нужно сгенерировать нужный код moc-ом. Если бы этот класс был разделён на хедер и имплементацию, то IDE/qmake сами бы всё сделали, а так нужно заинклюдить
Код

#include "<название-файла>.moc"

где-нибудь после объявления класса.

Читать: Using the Meta-Object Compiler (moc)




--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Mixolap
Дата 26.2.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 30.1.2008

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



В конструкторе своего класса вызовите конструктор QObject
MyClass(int val):QObject()
{

}
PM MAIL   Вверх
bsa
Дата 27.2.2008, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(Mixolap @ 26.2.2008,  18:43)
В конструкторе своего класса вызовите конструктор QObject
MyClass(int val):QObject()
{

}

Это тут причем? Вообще это делать необязательно, если есть возможность вызова конструктора базового класса без указания каких-либо параметров.
PM   Вверх
Dimass
  Дата 27.2.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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

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

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


 




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


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

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