#qt #visual-c #visual-studio-2012
#qt #visual-c #visual-studio-2012
Вопрос:
У меня есть проект Visual C , который содержит ссылки на библиотеки Qt, но я не могу создать его в Visual Studio. Я установил Qt 5 sdk и плагин в VS 2012, и начальные образцы проектов Qt работают нормально, но не более старый проект — это может быть проблема, связанная с тем, что проект совместим с более старой версией Qt — но я не знаю, как решить проблему. Продолжает отображаться ошибка — «Система не может найти путь, указанный Visual c . Редактирование.. Пользовательский интерфейс..»
Ошибка гласит MSB6006: «cmd.exe » завершен с кодом 3. Обозреватель решений содержит некоторые moc_xx.cpp файлы, которые являются только ссылками и отсутствуют в каталоге проекта. Я удалил их и попытался перестроить, но это выдает ту же ошибку
Комментарии:
1. Предоставьте более подробную информацию.
2. Добавлено несколько. Не уверен, какие еще детали я должен добавить.
3. Обновить переменную PATH в системных настройках
Ответ №1:
QTDIR необходимо установить перед запуском Visual Studio для проекта, чтобы правильно определить местоположение moc.exe и uic.exe .
Надстройка Qt Visual Studio будет создавать пользовательские шаги сборки для файлов .ui и заголовков всякий раз, когда файлы Qt добавляются или изменяются. Затем Visual Studio запускает пользовательские правила сборки, но эти правила обычно ссылаются на $(QTDIR) binmoc.exe .
Комментарии:
1. Да, я установил каталог в Qtoptions -> Qtversions, и новые проекты Qt выполняются правильно.
2. Что раньше использовал старый проект? Существовало много разных способов, которыми более старые версии qt-add / integration определяли версии qt. Один из способов проверить — в файле проекта в разделе <ProjectExtensions><VisualStudio><Пользовательские свойства ..>
3. Я не знаю, как определить более старую версию qt — единственная причина, по которой я знал, что проект содержит qt, заключалась в том, что в solution Explorer были некоторые moc_xx.cpp файлы, которые являются только ссылками и отсутствуют в каталоге проекта. В нем говорится об ошибке 1 ошибка MSB6006: «cmd.exe » завершен с кодом 3.
4. файлы moc_* — это файлы, которые генерируются при сборке проекта. Ваша настройка компилятора метаобъектов (moc) неверна, иначе файлы были бы созданы при built.
5. Кстати, я говорил, что необходимо установить переменную среды QTDIR. Это не задается через графический интерфейс надстройки в Visual Studio. Я не думаю, что это было прояснено из предыдущих комментариев. Почему надстройка не делает это за вас? Вы меня поняли. Я ежедневно сталкивался с этим в большой команде, и обычно это проблема. Прошу прощения, если я ошибаюсь.
Ответ №2:
Недавно у меня тоже была похожая проблема со старым проектом VS, созданным много лет назад коллегой.
Проект VS был создан с помощью qmake. Он содержит абсолютно полный путь к moc.exe , на компьютере, где он был изначально создан. То есть на КОМПЬЮТЕРЕ моего коллеги, который покинул команду.
У меня нет moc.exe в том же месте, где он был у него. Следовательно, этап MOC при сборке завершается ошибкой: система не может найти указанный путь.
Вы могли бы найти путь, например, повысив детализацию выходных данных сборки до уровня диагностики.
Надеюсь, это поможет.