У меня есть проект, сгенерированный из файла .pro. Я не могу скомпилировать его, потому что файлы MOC не генерируются.Создание файла MOC в VS2013
Q_OBJECT
используется в заголовках классов быть MOCed#pragma once
используется в заголовках классов быть MOCed
Я поставил многословие в Детальные, и я могу видеть, что MOC называется на правых классах. Затем, есть следующее сообщение об ошибке: standard input(0): Note: No relevant classes found. No output generated.
Наконец, компилятор не может связать MOC файлы, а также построить не удается:
8> moc_myClass.cpp
8>c1xx : fatal error C1083: Cannot open source file:
'D:\Things\\L_build\Stuff\moc\moc_myClass.cpp': No such file or directory
Любой ключ?
Есть ли у вас какая-либо «нетрадиционная» команда препроцессора в файле заголовок, и являются Q_OBJECT макро в правильном месте? (Сравните с некоторыми примерами файлов) – hmuelner
Получают ли эти классы в конечном счете из 'QObject'? Является ли макрос 'Q_OBJECT' * внутренним * по крайней мере одного класса, который происходит из' QObject'? Оба должны выполняться для moc для генерации вывода. Этот вопрос сейчас немного не соответствует теме, поскольку нет кода, который воспроизводит проблему. –
«Q_OBJECT используется в заголовках для классов, которые должны быть MOCed». Он предполагается использовать внутри деклараций каждого класса, который происходит из 'QObject', а не только где-то в заголовке. 'Q_OBJECT' расширяет декларацию члена' staticMetaObject'. Таким образом, он имеет смысл только внутри декларации класса и будет игнорироваться moc иначе. –