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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: не могу понять.. undefined reference..  (Прочитано 4877 раз)
soulsaver
Гость
« : Январь 19, 2012, 14:44 »

main_window.h
Код:
#ifndef MAIN_WINDOW_H
#define MAIN_WINDOW_H
#include <QWidget>
#include <QPushButton>

class main_window : public QWidget{
    Q_OBJECT
public:
   main_window(QWidget *parent=0);
   ~main_window();
};

#endif // MAIN_WINDOW_H
main_window.cpp
Код:
#include "main_window.h"

main_window::main_window(QWidget *parent):QWidget(parent){

}
main_window::~main_window(){

}
main.cpp
Код:
#include <QApplication>
#include "main_window.h"

int main (int argc,char *argv[]){
    QApplication dbfQT(argc,argv);
    main_window wndMain;
    wndMain.show();
    return dbfQT.exec();
}
ппц, кода еще и нет, а он ругается... даже проэкт уже удалял и создавал новый и переписывал все заново... не помогло.. вот не знаю на что думать(. пишет это:
undefined reference to `vtable for main_window'
подскажите плиз. проэкты написанные ранее загружаются и работают нормально.
« Последнее редактирование: Январь 19, 2012, 15:00 от soulsaver » Записан
soulsaver
Гость
« Ответ #1 : Январь 19, 2012, 14:54 »

комментирую обьявление конструктора и деструктора в классе, так-же их реализацию в срр файле и обьявление класса в main, ошибки пропадают... но это естественно не нормально, просто может на мыслю какую вас натолкнет). он как буд-то не считает это за класс, и деструктора не видит, типо как функции простые обрабатывает. не пойму чет я ниче (
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #2 : Январь 19, 2012, 14:57 »

#include <main_window.h> замени на #include "main_window.h"

при записи наследования пробелы поставь. вообще говоря, в пробелах, как и в пустых строках, нет ничего плохого, наоборот - повышает читабельность.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
soulsaver
Гость
« Ответ #3 : Январь 19, 2012, 15:01 »

в проекте все сделал так же, как и исправил тут). ничего естественно не произошло(. ошибка таже. надеюсь стало по удобнее читать )
« Последнее редактирование: Январь 19, 2012, 15:04 от soulsaver » Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #4 : Январь 19, 2012, 15:08 »

У меня все компилиццо (QtCreator + MSVS2010).
« Последнее редактирование: Январь 19, 2012, 15:10 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #5 : Январь 19, 2012, 15:12 »

+1 (та же среда)

попробуй очистить проект, руками удалить оставшиеся файлы и построить снова
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
soulsaver
Гость
« Ответ #6 : Январь 19, 2012, 15:16 »

спасибо большое что потратили время на это). походу среде разработки крышу порвало..(((. но писать то датьше надо как-то... копировать старые проекты удалять из них все и писать там новую прогу? )))) вариант). но хотелось бы чтоб как у человека все было))). хорошо, щас попробую, отпишусь о результате ).
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Январь 19, 2012, 15:28 »

эээээ, я говорил о файлах, которые создаются при сборке - код не нужно удалять и писать по-новой.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
soulsaver
Гость
« Ответ #8 : Январь 19, 2012, 15:45 »

их я тоже удалил)). и не раз). когда нажимаешь пересобрать все, то по идее все файлы удаляются и создаются новые). ну попробовал и руками. никуя. не помогло. создал новый проэкт, начал все по очереди писать, начиная с мейн сипипи, после каждой строки нажимал собрать). короче написал все, без ошибок, перешел на main_window.cpp проинклудил заголовочный, все пучком, и вот только написал реализацию конструктора класса - все, умерла программа.(((
Записан
mutineer
Гость
« Ответ #9 : Январь 19, 2012, 15:46 »

вот не надо после каждой строки нажимать собрать. Первую сборку проведи только тогда, когда класс (с реализацией) уже написан
Записан
soulsaver
Гость
« Ответ #10 : Январь 19, 2012, 15:59 »

вот не надо после каждой строки нажимать собрать. Первую сборку проведи только тогда, когда класс (с реализацией) уже написан
вот не знаю, из-за этого или нет). но сцука сработало)). спасибо )). странно что без конструкторов собрал и все, поездец проэкту.. это так нечаянно нажмешь када нить... ))) спасибо большое ) буду стараться этого больше не делать )
Записан
mutineer
Гость
« Ответ #11 : Январь 19, 2012, 16:01 »

В процессе сборки Qt выполняет работу по кодогенерации (генерируется метаинформация, код сигналов, код вызова слотов и прочее). Иногда этот механизм неправильно реагирует на изменения. В частности плохо реагирует, если был класс без Q_OBJECT, выполнили сборку, а затем добавили Q_OBJECT и пересобрали
Записан
soulsaver
Гость
« Ответ #12 : Январь 19, 2012, 16:07 »

спасибо )). да, сталкивался с Q_OBJECT, но от него помогает пересобрать все ). а тут полный якорь). кул форум, уже 3й вопрос тут решился). Спасибо огромное всем кто принимал в этом участие! ))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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