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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Проблемы с moc !!!  (Прочитано 15982 раз)
Natalie
Гость
« : Январь 11, 2006, 12:42 »

Расфасовала файлы в проекте по папкам.
Некоторые классы в этих новых папках используют Q_OBJECT macro. Для этих классов moc должен генерить файлы .cpp, но он (moc) этого не делает, видно не просматривает мои новые папки.  Грустный
Что мне нужно сделать, чтоб решить эту проблему?

Помогите, пожалуйста!!!
Записан
Steven_Orko
Гость
« Ответ #1 : Январь 11, 2006, 13:04 »

Попробуй сначала очистить проект Build->Batch Build. Там выбираешь все, что есть и нажимаешь Clean. А потом все заново посторой. А зачем ты сама распихивала файлы по папкам? Это должно автоматом быть... В свойствах студии в закладке Qt все прописано, кажется....
Записан
ElderOrb
Гость
« Ответ #2 : Январь 11, 2006, 13:04 »

Когда у меня была похожая ситуация всё что я сделал это поудалял из всех файлом Q_OBJECT, попробовал скомпилить - получил ожидаемую ругань, и снова подобавлял Q_OBJECT. В моём случае помогло.
Записан
Natalie
Гость
« Ответ #3 : Январь 11, 2006, 13:32 »

В папке с моим проектом сейчас лежат все стандартные папки (такие как Debug, Generated Files...). Я создала еще одну папку (Options), в которую положила некоторое количество файлов .cpp, .h. Включила эту папку в проект (в Additional Include Directories).

Для файлов, которые находятся в корне моего проекта в процессе компиляции появляется такая строка:
Moc'ing qtattempt.h...

После этого начинается компиляция всех .cpp.
Т.е. файлы, находящиеся не в корне (в моей папке Options), moc просто не просматривает.
Что же мне надо сделать, чтоб moc их начал просматривать?Непонимающий  :cry:


Советы по поводу удаления из всех файлов Q_OBJECT, а также очистке проекта, к сожалению Грустный , не увенчались успехом.  :cry:

P.S. Мне обязательно нужно, чтоб была эта папка Options, т.к. проект большой и надо, чтоб он выглядел аккуратно.
Записан
Steven_Orko
Гость
« Ответ #4 : Январь 11, 2006, 13:34 »

А сами файлы ты в проект включала? У меня точно также по отдельным папочкам лежал исходники в одном проекте. Я каждый файл включил в проект и все отработало
Записан
Natalie
Гость
« Ответ #5 : Январь 11, 2006, 13:39 »

Да, конечно включила.
Сделала: Add->New Folder. А далее в нее кинула все файлы из моей папки.
Записан
Steven_Orko
Гость
« Ответ #6 : Январь 11, 2006, 13:45 »

Не понял. Ты в Solutions Explorere создала новую папку и добавила туда свои файлы???
Записан
Natalie
Гость
« Ответ #7 : Январь 11, 2006, 13:48 »

Ага!

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

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #8 : Январь 11, 2006, 13:48 »

а какая версия Qt и какая IDE?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Steven_Orko
Гость
« Ответ #9 : Январь 11, 2006, 13:51 »

У меня и таким образом обрабатывается...
можешь проект переслать на почту? только без объектных файлов...
Записан
Natalie
Гость
« Ответ #10 : Январь 11, 2006, 13:51 »

Qt4.
Записан
Steven_Orko
Гость
« Ответ #11 : Январь 11, 2006, 13:54 »

Попробуй удалить все: релиз, дебаг и генератед файс - и перекомпилируй

to Racheengel
Можешь в асю ченть скинуть? я чего-то не добавил тебя в контактлист
Записан
Steven_Orko
Гость
« Ответ #12 : Январь 11, 2006, 16:40 »

Архив получил. сходу задал Rebuild.... и что вы думаете? Проект спокойно откомпилился без ошибок и даже с c Q_OBJECT. Хотя потом стал ругаться на ресурсы. но дело поправило удаление все трех каталогов, которые я писал. Вообще, Natalie, зачем ты так усложнила? если используешь qrc, то зачем пользуешься еще и rc? ИМХО, логичнее было бы что-то одно...
Записан
Natalie
Гость
« Ответ #13 : Январь 11, 2006, 17:27 »

Не знаю как у тебя так вот вышло.
У меня с Q_OBJECT для всех классов из файлов HeaderDialogWidget и OptionsDialog появляются ошибки типа:

QtAttempt error LNK2001: unresolved external symbol "public: virtual int __thiscall HeaderDialogWidget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@HeaderDialogWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z)

QtAttempt error LNK2001: unresolved external symbol "public: virtual void * __thiscall OptionsDialog::qt_metacast(char const *)" (?qt_metacast@OptionsDialog@@UAEPAXPBD@Z)

У тебя при Rebuild помимо
  Moc'ing qtattempt.h...
  Moc'ing combodelegate.h...
пишется
  Moc'ing optionsdialog.h...
  Moc'ing headerdialogwidget.h...  ??

и в Generated Files появляются файлы
  moc.optionsdialog.cpp
  moc.headerdialogwidget.cpp  ??

у меня ничего такого не происходит  Грустный

добавлено спустя 58 секунд:

 Не знаю как у тебя так вот вышло.
У меня с Q_OBJECT для всех классов из файлов HeaderDialogWidget и OptionsDialog появляются ошибки типа:

QtAttempt error LNK2001: unresolved external symbol "public: virtual int __thiscall HeaderDialogWidget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@HeaderDialogWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z)

QtAttempt error LNK2001: unresolved external symbol "public: virtual void * __thiscall OptionsDialog::qt_metacast(char const *)" (?qt_metacast@OptionsDialog@@UAEPAXPBD@Z)

И при Rebuild помимо
  Moc'ing qtattempt.h...
  Moc'ing combodelegate.h...
пишется
  Moc'ing optionsdialog.h...
  Moc'ing headerdialogwidget.h...  ??

и в Generated Files появляются файлы
  moc.optionsdialog.cpp
  moc.headerdialogwidget.cpp  ??

у меня ничего такого не происходит  Грустный
Записан
Steven_Orko
Гость
« Ответ #14 : Январь 11, 2006, 18:11 »

В самом начале, когда ничего нет, они появляются. А потом уже до тех пор, пока я не поменяю что-то, связанное с мета-информацией в объекте. Есть предложение. Давай я поменяю твой проект, как мне кажется логичнее, а ты посмотришь, если что, подправишь под себя?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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