powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / qt 5.2 ошибка компиляции undefined reference to...
4 сообщений из 4, страница 1 из 1
qt 5.2 ошибка компиляции undefined reference to...
    #38546895
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте,

подскажите, пожалуйста, в чем может быть причина ошибки:
Файл passvalue.h

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
#ifndef PASSVALUE_H
#define PASSVALUE_H

#include <QObject>

class PassValue : public QObject {
    Q_OBJECT
public:
    PassValue();
public slots:
    void pass(const QString&);
signals:
    void valueChanged(int);
};

#endif // PASSVALUE_H



файл passvalue.cpp

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
#include "passvalue.h"

PassValue::PassValue() : QObject()
{
}

void PassValue::pass(const QString& strVal)
{
    int intVal = strVal.toInt();
    emit valueChanged(intVal);
}



При запуске "build project" получаю ошибки:

passvalue.h:6: error: undefined reference to `vtable for PassValue'

build-lab2-Desktop_Qt_5_2_0_MinGW_32bit-Debug\debug\passvalue.o:-1: In function `ZN9PassValueC2Ev':

passvalue.cpp:3: error: undefined reference to `vtable for PassValue'

passvalue.cpp:10: error: undefined reference to `PassValue::valueChanged(int)'

collect2.exe:-1: error: error: ld returned 1 exit status

Спасибо.
...
Рейтинг: 0 / 0
qt 5.2 ошибка компиляции undefined reference to...
    #38547012
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
qt 5.2 ошибка компиляции undefined reference to...
    #38547080
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!

MuromТакое часто встречается вот в каком случае:

— создаешь хедер и срр, пишешь класс
— добавляешь в проект
— прогоняешь qmake
— потом добавляешь в класс слоты/сигналы

В этом случае при запуске qmake'а в п.3 не создаются вызовы moc'а, т.к. не было нужно. После добавления сигналов/слотов нужны вызовы moc'а для генерации стабов. Вот их и не хватает для vtable'а.
Простой повторный запуск qmake'а не спасает, надо удалить файлы object_script.XXX.debug и object_script.XXX.release.

P.S. Это на винде, на других платформах может быть немного иначе, но идея думаю понятна.

Это помогло!
...
Рейтинг: 0 / 0
qt 5.2 ошибка компиляции undefined reference to...
    #38547581
Alex the coder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mr_virtus, добавлю, что как истинно ленивый юзер Qt Creator'а, для избежания таких проблем делаю просто "Clear", "Run qmake" проекту, ну и "Build All".
И не надо ничего ручками удалять :)
По крайней мере, под MSVC уже давно забыл об этой дурацкой ошибке.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / qt 5.2 ошибка компиляции undefined reference to...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]