2010-04-13 2 views
1

Итак, я довольно новичок в Qt, и я только что унаследовал проект от кого-то другого, который также является новичком в Qt. Кстати, его нет на этой неделе. Мы используем Visual Studio 2008 и устанавливаем последнюю версию Qt (4.6.2).Ошибка Qt moc без сообщения об ошибке

Проект строится на машине моего коллектива, и я могу получить проект из svn и построить его напрямую. Но при любых других обстоятельствах он отказывается строить на моей машине, и это не дает мне объяснений. Даже если я просто сделаю «сборку», а затем «построить», это не сработает. Любая небольшая модификация приведет к сбою.

Когда я пытаюсь построить весь проект, я получаю сообщение об ошибке:

1> Moc'ing MatrixTypeInterface.h ... 1> MOC:. Можно не создавать \ GeneratedFiles \ Debug \ moc_MatrixTypeInterface . .cpp; \ GeneratedFiles \ Debug \ moc_matrixtypeinterface.cpp 1> Проект: ошибка PRJ0019: инструмент возвратил код ошибки из "Moc'ing MatrixTypeInterface.h ..."

МОЦ инструмент Безразлично давать какие-либо сообщение об ошибке, почему он не работает, и я потратил впустую большую часть вчерашнего дня, пытаясь понять, почему. Я получил команду, которую VS использовал для вызова moc, и я сам ввел ее в командной строке. Он ничего не писал на экране.

Любые идеи?

ответ

1

Я наконец нашел ответ. мой коллега вернулся в офис сегодня, и я использовал журнал сборки с его машины, чтобы получить его полную команду moc (около 4 строк). Наши команды moc были в основном одинаковыми, за исключением самого конца. Его команда закончилась в:

-o ". \ GeneratedFiles \ $ (ConfigurationName) \ moc _ $ (InputName).каст "

Моя команда закончилась:

-o" \ GeneratedFiles \ $ (ConfigurationName) \ MOC _ $ (InputName) .cpp; \ GeneratedFiles \ Debug \ moc_matrixtypeinterface.cpp»

..

Я проверил шаг настраиваемого построения для этого файла, и удалить излишки немного. После этого файл компилируется нормально. Я не знаю, как и почему кварты решили добавить в эту дополнительную лакомый, но он сделал.

Спасибо для вашей помощи, ребята. Пара вы подозревали, что это проблема с файловой системой, и даже точка с запятой не разрешена в имени файла Windows. Но я чувствую, что основной причиной было то, что Qt создавал неправильную строку сборки.

Я принимаю свой собственный ответ в надежде, что он поможет кому-то другому.

1

Скорее всего, это ошибка файловой системы, вероятно, у вас нет папки «GeneratedFiles» или у нее нет правильных разрешений.

У меня возникли проблемы, когда разные версии moc и надстройки используют «Сгенерированные» или «Сгенерированные файлы» или «Сгенерированные файлы» для этой папки. Проверьте настройки на всех этапах сборки.

+0

Все пути к файлу верны, и все права доступа к файлам верны. Вчера я проверил все мои настройки проекта/сборки в отношении проекта моего коллеги, и я не мог найти ничего другого. Его здесь нет, поэтому я не могу перепроверить что-нибудь. –

0

Возможно, ваш файл .vcproj поврежден. У меня была эта проблема, перед которой возникли из-за того, что разные версии Qt и надстройка Qt VS закончили повреждение моих файлов .vcproj. Некоторое время мне пришлось вручную исправлять файл .vcproj (My AdditionalDependencies = «...»), и менялись местами для разных файлов заголовков, которые нужно было mocced, я вручную исправлял их для каждого нового заголовка, который необходимо было мочиться).

Чистая переустановка Visual Studios + дополнение Qt + Qt в конечном итоге исправила это. Проверьте файл .vcproj и посмотрите, имеет ли смысл.

0

Вы уверены, что ваши пути к файлам верны и существуют до запуска moc? Поскольку кажется, что относительные пути предоставляются для moc, я бы узнал, какой рабочий каталог moc при запуске.

Как был создан ваш .vcproj-файл? Был ли qmake использован? Или смейк? Или это было на месте?

Смежные вопросы