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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: не создается мок файл  (Прочитано 15895 раз)
ru
Гость
« : Декабрь 14, 2007, 16:19 »

собираю библиотеку (не qt)
есть куча срр и h файлов, для одной пары из них moc файл просто не создается,..
кто нить знает, отчего это и как лечится?
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #1 : Декабрь 14, 2007, 16:31 »

собираю библиотеку (не qt)
есть куча срр и h файлов, для одной пары из них moc файл просто не создается,..
кто нить знает, отчего это и как лечится?

А Q_OBJECT в include файле не забыл?
Вообще то вопрос достаточно аморфный, а мысли здесь не читают.
Записан
WW
Гость
« Ответ #2 : Декабрь 14, 2007, 16:32 »

А с чего бы он должен создаваться?
moc создает moc.exe из библиотеки Qt,  если видит, что создается QT библиотека и в классе(файле?) указан макрос Q_OBJECT.
Записан
ru
Гость
« Ответ #3 : Декабрь 14, 2007, 16:36 »

собирающаяся библиотека создана на основе qt, boost, gui библиотек,
ддя других пар cpp и h файлов moc файлы создаются....
то бишь генерятся..
а для этой пары нет.
вот и не понятно, как попросить насильно сгенерить, и вообще непонятно, почему не генерируется moc файл
Записан
ru
Гость
« Ответ #4 : Декабрь 14, 2007, 16:37 »

А Q_OBJECT в include файле не забыл?


макрос   Q_OBJECT указан
Записан
burunduk
Гость
« Ответ #5 : Декабрь 14, 2007, 16:38 »

еще можно попробывать вручную написать #include "file.moc"
бывает не может нормально собрать, когда описание класса не в заголовочном файле а в файле реализации
Записан
WW
Гость
« Ответ #6 : Декабрь 14, 2007, 16:42 »

ддя других пар cpp и h файлов moc файлы создаются....
то бишь генерятся..
а для этой пары нет.
Давай по порядку. Телепатов нет. В этих файлах что? Классы, описания констант, или что другое?
Может они и не должны генериться, а мы тут богу молимся, чтобы дождь пошел....
Записан
ru
Гость
« Ответ #7 : Декабрь 14, 2007, 16:47 »

именно в этом файле просто создавался виджет с описанием программы и кто это безобразие творил))

нда... произошло чудо - но он создался (не понимаю почему)
спасибо)
бум править это чудо дальше)
Записан
ru
Гость
« Ответ #8 : Декабрь 14, 2007, 17:39 »

все та же проблема...
при Генерации кода мок файл таки не создается, хотя макрос Q_Object присутствует, кусок h  файла прилагается,
почему он его не создает - не понятно

Код:
#ifndef _SATSTAT_TASKS_CONTVISTASK_H
#define _SATSTAT_TASKS_CONTVISTASK_H

#include <satstat/config.h>

#include <list>

// Сериализация из boost
#include <boost/serialization/access.hpp>
#include <boost/serialization/version.hpp>
#include <boost/serialization/nvp.hpp>
#include <boost/serialization/level.hpp>
#include <boost/serialization/export.hpp>

#include <satstat/constants.h>
#include <satstat/elps_operation.h>
#include <satstat/sph_contour.h>
#include <satstat/math/utils/isoline.h>
#include <satstat/tasks/tasks.h>
#include <satstat/tasks/generalizedtask.h>
#include <satstat/tasks/legendwidget.h>
#include <satstat/tasks/mathtaskproperties.h>




//! Виджет настроек задачи "Области видимости"
class ContVisTaskPropertiesWidget : public MathTaskPropertiesWidget {
  Q_OBJECT

  public:
    //! Конструктор по умолчанию
    ContVisTaskPropertiesWidget();

хотя в аналогичном этому h  файлу мок файл создается :
Код:

#include <satstat/grid.h>
#include <satstat/orbit.h>
#include <satstat/datamanager/datamanager.h>
#include <satstat/math/interpolation/interpolation.h>
#include <satstat/tasks/generalizedtask.h>
#include <satstat/tasks/mathtaskproperties.h>
#include <satstat/tasks/tasks.h>

#include <qwtplot3d/qwt3d_surfaceplot.h>
#include <qwtplot3d/qwt3d_function.h>

// Сериализация из boost
#include <boost/serialization/access.hpp>
#include <boost/serialization/version.hpp>
#include <boost/serialization/nvp.hpp>
#include <boost/serialization/level.hpp>
#include <boost/serialization/export.hpp>
class ExtremumTypeComboBox : public QComboBox {
  Q_OBJECT
  public:
    //! Конструктор
    ExtremumTypeComboBox( EmissivePowerTask* task, QWidget* parent=0 )
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #9 : Декабрь 14, 2007, 17:46 »

Какой компиль? Как компилите?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
ru
Гость
« Ответ #10 : Декабрь 14, 2007, 18:06 »

среда разработки - MSVC 8

устанавливаем debug
и нажимаем build
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #11 : Декабрь 14, 2007, 18:09 »

все та же проблема...
при Генерации кода мок файл таки не создается, хотя макрос Q_Object присутствует, кусок h  файла прилагается,
почему он его не создает - не понятно

Код:
#ifndef _SATSTAT_TASKS_CONTVISTASK_H
#define _SATSTAT_TASKS_CONTVISTASK_H

#include <satstat/config.h>

#include <list>

// Сериализация из boost
#include <boost/serialization/access.hpp>
#include <boost/serialization/version.hpp>
#include <boost/serialization/nvp.hpp>
#include <boost/serialization/level.hpp>
#include <boost/serialization/export.hpp>

#include <satstat/constants.h>
#include <satstat/elps_operation.h>
#include <satstat/sph_contour.h>
#include <satstat/math/utils/isoline.h>
#include <satstat/tasks/tasks.h>
#include <satstat/tasks/generalizedtask.h>
#include <satstat/tasks/legendwidget.h>
#include <satstat/tasks/mathtaskproperties.h>




//! Виджет настроек задачи "Области видимости"
class ContVisTaskPropertiesWidget : public MathTaskPropertiesWidget {
  Q_OBJECT

  public:
    //! Конструктор по умолчанию
    ContVisTaskPropertiesWidget();

хотя в аналогичном этому h  файлу мок файл создается :
Код:

#include <satstat/grid.h>
#include <satstat/orbit.h>
#include <satstat/datamanager/datamanager.h>
#include <satstat/math/interpolation/interpolation.h>
#include <satstat/tasks/generalizedtask.h>
#include <satstat/tasks/mathtaskproperties.h>
#include <satstat/tasks/tasks.h>

#include <qwtplot3d/qwt3d_surfaceplot.h>
#include <qwtplot3d/qwt3d_function.h>

// Сериализация из boost
#include <boost/serialization/access.hpp>
#include <boost/serialization/version.hpp>
#include <boost/serialization/nvp.hpp>
#include <boost/serialization/level.hpp>
#include <boost/serialization/export.hpp>
class ExtremumTypeComboBox : public QComboBox {
  Q_OBJECT
  public:
    //! Конструктор
    ExtremumTypeComboBox( EmissivePowerTask* task, QWidget* parent=0 )

Вопрос:
MathTaskPropertiesWidget наследуется от QObject или нет?
Записан
ru
Гость
« Ответ #12 : Декабрь 14, 2007, 18:31 »

Код:
class MathTaskPropertiesWidget : public QWidget {

наследуется от QWidget
« Последнее редактирование: Декабрь 14, 2007, 18:39 от ru » Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #13 : Декабрь 14, 2007, 19:00 »

Код:
class MathTaskPropertiesWidget : public QWidget {

наследуется от QWidget

А в проекте этот влючаемый файл присутствует?
ЕСли присутствует посмотри врмя изменения его и Makefile.
Попробую очистить проект, удалить все Makefile.*, выполнить qmake и по новой откомпилироать проект.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #14 : Декабрь 15, 2007, 00:03 »

среда разработки - MSVC 8

устанавливаем debug
и нажимаем build

пробуем перегенерить проетк (qmake -t vcapp и делее собрать; или qmake -> nmake)
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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