Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2012, 10:01   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию проблемы с Qt

Добрый день форумчане, решил попробовать пописать на Qt, и столкнулся со следующей проблемой:
Код:
undefined reference to `vtable for SomeTest'
сам код:
Код:
#include <QtCore/QCoreApplication>
#include <QDebug>
#include <QObject>

class SomeTest{
    Q_OBJECT
public:
    SomeTest(){
        qDebug()<<"LOL";
    }
};

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    SomeTest * test=new SomeTest();
    return a.exec();
}
Перед тем как зайти на форум погуглил, но не понял как исправить, если убрать макрос Q_OBJECT то компиляция проходит успешно, кто мне расскажет, в чем проблема?
CodeNOT вне форума Ответить с цитированием
Старый 27.03.2012, 11:00   #2
Karmadon
Пользователь
 
Аватар для Karmadon
 
Регистрация: 28.02.2012
Сообщений: 46
По умолчанию

Инструмент MOC читает C + + файл заголовка.
Если он находит одно или несколько объявлений классов, которые содержат макрос Q_OBJECT, он производит исходный файл, содержащий мета-объектный код для этих классов. Среди прочего, мета-объектный код необходим для механизма сигналов и слотов.

Код:
// Правильное обьявление
 class SomeClass : public QObject, public OtherClass
 {
     ...
 };
Попробуй:
1. прописать этот файл в файле qt проекта (.pro)
2. присоеденить moc файл, созданый прекомпилятором.
3. удалить все moc файлы и заново пересобрать проект

А вообще если тебе система сигналов(слотов) не нужна, то использовать этот макрос тоже не нужно.
"THE ONLY WAY TO GET SMARTER IS BY PLAYING A SMARTER OPPONENT." -- Fundamentals of Chess 1883
Karmadon вне форума Ответить с цитированием
Старый 27.03.2012, 12:15   #3
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

как раз таки нужна, хочу попробовать осуществиться обмен между процессами через сокеты, udp использовать не хочется
CodeNOT вне форума Ответить с цитированием
Старый 27.03.2012, 12:17   #4
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,336
По умолчанию

2CodeNOT
Цитата:
как раз таки нужна, хочу попробовать осуществиться обмен между процессами
при чем тут сигнал слот и ipc?
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы с IE Tradua HTML и CSS 1 05.08.2011 06:54
Проблемы с БД Verwolf C/C++ Базы данных 2 22.05.2011 09:52
Проблемы с С# PDV199003 Помощь студентам 0 04.06.2010 14:38
проблемы с if Vergil Общие вопросы C/C++ 8 21.04.2010 21:43
проблемы с IE xakzona Помощь студентам 1 16.12.2008 21:53