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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Проблемы с moc !!!  (Прочитано 16378 раз)
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


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


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

Вообще у меня подобная проблема была. Решилось все установкой VS Integrator 1.2.0 и пересохранением всех файлов из оболочки.
Записан

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
Гость
« Ответ #16 : Январь 11, 2006, 19:25 »

to Natalie:
Я тебе письмо послал с немного подправленным проектом. Посмотри почту...
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


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

to Natalie:
Решение вопроса кажется простое.
Необходимо создать проектный файл - pro. Например, project.pro
Выполнить "qmake project.pro", а далее nmake. Все должно получиться.
Очевидно не созданы каталоги в которые moc помещает результаты своей работы.
Записан
Natalie
Гость
« Ответ #18 : Январь 12, 2006, 12:23 »

to Steven_Orko:
Большое спасибо.

Но я не совсем поняла в чем заключалась проблема с мета информацией.
Что из того, что ты поменял относится к решению именно этой проблемы? (а не к изменению внешнего вида проекта)
Записан
Steven_Orko
Гость
« Ответ #19 : Январь 12, 2006, 15:01 »

Насколько я понял, у тебя проблемма исчезла? Это хорошо.
Цитировать
Но я не совсем поняла в чем заключалась проблема с мета информацией.
Что из того, что ты поменял относится к решению именно этой проблемы? (а не к изменению внешнего вида проекта)

Ну, например, как уже писал Mikhail, иногда возникает проблемма, когда нет файла проекта *.pro. К тому же я где-то в другом англоязычном формуче читал, что есть проблемма, когда используются два типа ресурсов.
Что я сделал:
 - удалил ресурсы windows, оставил только ресурсы Qt (qrc).
 - создал проект Qt, удалив проект SV.
 - пересоздал проект VS на основе проекта Qt.
 - немного все систематизировал...

Кстати, когды ты будешь добавлять новые ресурсы, то тебе надо стереть файл qrc_<имя файла>.cpp, если будут проблеммы с их добавляемостью в проект.
Записан
Dendy
Гость
« Ответ #20 : Январь 12, 2006, 17:50 »

Прекомпиллятор действительно иногда сбоит. Но не из-за собственньІх ошибок. Я так понимаю файл с метаинформацией бьІл добавлен в проект и компилировался. Для начала нужно бьІло глянуть его содержимое - он мог бьІть просто пустьІм. Если нет - смотреть пересоздаётся ли он (поправить заголовочник). Непересоздаваться он может, если прекомпиллятор думает, что мета-информация новей, чем сам заголовочник, такое бьІвает после игр с системньІм временем, когда проект бьІл сохранён позднее текущего времени.

Ещё не такая частая, но не менее действенная проблема - банально нет места на диске - файл создаётся, время создания вьІставляется, компиллируется, но размер ему - ноль.

БьІвает и такое, что moc_ файл должен создаваться во временной папке, которой попросту не существует.

В любом случае правила прекомпиллятора прописьІваются в Custom Build студии, так что всегда можно найти откуда растут ноги - смотреть в Output'е запускается ли Custom Build в принципе. И если запускается - попробовать повторить то же самое в консоли.
Записан
Natalie
Гость
« Ответ #21 : Январь 13, 2006, 12:36 »

Что-то я никак не могу понять как создать .pro файл.

В Windows Commander написала qmake -project. Файл QtAttempt.pro создался. Надо ли еще что-то сделать (как-то подключить этот файл...) ?

Steven_Orko, можешь, пожалуйста, пояснить как:
   - создать проект Qt, удалив проект SV.
   - пересоздать проект VS на основе проекта Qt.

Я еще никогда с этим не встречалась. Как это все проделать?

добавлено спустя 23 минуты:

 после  qmake -project  сделала так:
Qt->Open Solusion from .pro File и перегенерила файл QtAttempt.vsproj
И все заработало.

Как я поняла под
- создать проект Qt, удалив проект SV.
- пересоздать проект VS на основе проекта Qt.
это и имелось в виду?
Записан
Dendy
Гость
« Ответ #22 : Январь 13, 2006, 14:08 »

По ходу да. Дело в том, что одним наличием файлов в проекте не ограничишься. Всё завязано на том, что прописано в Custom Build студии. Если временньІе папки из pro-файла меняются елементарно, то в студии они остаются такими какими бьІли при добавлении файла в проект. Наверное единственньІй способ перебить Custom Build - удалить и добавить заново все файльІ либо пересоздать проект из pro-файла.

Именно из-за етих непоняток не пользуюсь Qt Integration.

Рекомендую взять на вооружение простой способ:

- вьІделяем в проекте все h-файльІ, заходим в их свойства и пишем что-то вроде:
Код:
$(qtdir)/bin/moc.exe -I"$(qtdir)/include" $(InputDir)$(InputFileName) -o your_temporary_folder/moc_$(InputName).cpp
MOC'ing $(InputFileName) ...
your_temporary_folder/moc_$(InputName).cpp


- аналогично для исходников:
Код:
$(qtdir)/bin/moc.exe -DQT3_SUPPORT $(InputDir)$(InputName).cpp -o your_temporary_folder/$(InputName).moc
MOC'ing $(InputName).cpp ...
your_temporary_folder/$(InputName).moc


- аналогично для ресурсов:
Код:
$(qtdir)/bin/rcc.exe -name $(InputName) $(InputDir)$(InputFileName) -o your_temporary_folder/qrc_$(InputName).cpp
RCC'ing $(InputFileName) ...
your_temporary_folder/qrc_$(InputName).cpp


- аналогично для форм:
Код:
$(qtdir)/bin/uic.exe $(InputDir)$(InputFileName) -o your_temporary_folder/ui_$(InputName).h
UIC'ing $(InputFileName) ...
your_temporary_folder/ui_$(InputName).h


 Веселый  Подмигивающий

Единственная нужная вещь в интеграторе - Debug Extentions, но и она делается руцями, добавив кусок кода в autoexp.dat.
Записан
Natalie
Гость
« Ответ #23 : Январь 13, 2006, 14:21 »

Большое ВСЕМ спасибо    Веселый
Записан
Steven_Orko
Гость
« Ответ #24 : Январь 13, 2006, 18:27 »

to Natalie:
Ну вот  и разобрались в проблемме ))))
to Dendy:
Согласен с тобой, что в общем случае было бы гораздо лучше с разных точек зрения пользоваться своими makefile и  Custom Build, причем настроенными тобою же. Но в данном случае было проще сделать выше описанные пункты, т.к. они понятнее (ИМХО).
Записан
Dendy
Гость
« Ответ #25 : Январь 13, 2006, 18:47 »

Свой Makefile - ето через чур! Веселый  Гораздо круче наловчиться писать pro-файльІ, вот где действительно сила и кроссовость.

Жалко, что нет исходников Qt интегратора, как бьІло для Студии 6. Тогда можно бьІло легко найти ошибки и подправить. Или я чего-то не знаю...

ЕдинственньІй найденньІй мной недостаток студии перед консолью - невозможность натравить злочастньІй moc на cpp-файл, ибо правило для файла можно задать только одно. Или я опять же чего-то не знаю...
Записан
Steven_Orko
Гость
« Ответ #26 : Январь 13, 2006, 18:56 »

Ну, не знаю, как в винде, но я натравливал moc в Линуксе и на хедер и на cpp. Если использовать перенаправление вывода, то создаст новый отmocаный файл. Но это я все по поводу консоли )))) Веселый  по поводу исходников интегратора... не знаю, есть ли они, но было бы круто, если бы кто нашел )))
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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