Russian Qt Forum
Ноябрь 21, 2024, 09:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: undefined reference to `vtable for  (Прочитано 40145 раз)
boobsik
Гость
« : Август 17, 2009, 09:00 »

ошибка вылетает при попытке компиляции следующего класса:

Код:
class MLTcpServer : public QTcpServer{
    Q_OBJECT
public:
    MLTcpServer(QObject *parent = 0);
    ~MLTcpServer();
signals:
    void fucking_connection(int socketDescriptor);
protected:
    void incomingConnection(int socketDescriptor);   
};

MLTcpServer::MLTcpServer(QObject *parent)
        :QTcpServer(parent){
}

MLTcpServer::~MLTcpServer(){

}

 void MLTcpServer::incomingConnection(int socketDescriptor) {
     emit fucking_connection(socketDescriptor);
}
Записан
boobsik
Гость
« Ответ #1 : Август 17, 2009, 09:14 »

создал новый класс, скопировал все методы и загрузил в проект и новый класс скомпилировался без единого предупреждения, кто нибудь даст намек, на то, что происходит?
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #2 : Август 17, 2009, 09:31 »

может быть нужно:
Код:
    virtual ~MLTcpServer();
Записан

ArchLinux x86_64 / Win10 64 bit
spirit
Гость
« Ответ #3 : Август 17, 2009, 09:37 »

может быть нужно:
Код:
    virtual ~MLTcpServer();
а зачем, если деструктор в родителе и так виртуальный?  Улыбающийся
Записан
spirit
Гость
« Ответ #4 : Август 17, 2009, 09:39 »

а какое полное наименование ошибки?
Записан
BRE
Гость
« Ответ #5 : Август 17, 2009, 09:50 »

создал новый класс, скопировал все методы и загрузил в проект и новый класс скомпилировался без единого предупреждения, кто нибудь даст намек, на то, что происходит?
Попробуй сделать qmake; make
Возможно, moc этот файл не подхватил.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Август 17, 2009, 11:40 »

А еще лучше qmake && make clean && make
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
sergeyvl12
Гость
« Ответ #7 : Август 20, 2009, 18:41 »

вижу у тебя внизу реализацию

Код:
void MLTcpServer::incomingConnection(int socketDescriptor) 
{
     emit fucking_connection(socketDescriptor);
}

А где реализация fucking_connection() ?
Записан
Rcus
Гость
« Ответ #8 : Август 20, 2009, 18:46 »

В "mltcpserver.moc"/"moc_mltcpserver.cpp" же Улыбающийся Очевидно вы не следили за ходом дискуссии.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Август 20, 2009, 18:50 »

Это первое с чем и я столкнулся  Улыбающийся Если имеете Q_OBJECT - нужен "moc_.."  файл который надо получать через qmake (в общем расплата за "крутизну"  Улыбающийся)
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #10 : Август 20, 2009, 20:27 »

А где реализация fucking_connection() ?

Наверное, тебе нужно что-то покурить по Qt Подмигивающий
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Disaron
Гость
« Ответ #11 : Сентябрь 02, 2009, 09:11 »

Код:
#include <QObject>
В заголовочнике спасет.
Записан
crackedmind
Гость
« Ответ #12 : Сентябрь 02, 2009, 10:11 »

Суть такая.
Если ты создаешь класс.

Код:
class My
{
};
и делаешь qmake, а затем решил добавить
Код:
class My
{
     Q_OBJECT
};
то компиляция не пройдет, т.к. надо по новой сгенерировать Makefile. qmake'же автоматически обновляет Makefile'ы только при изменении .pro/.pri файлов.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.163 секунд. Запросов: 22.