Как создать существующий проект Qt в Visual Studio?

#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 при сборке завершается ошибкой: система не может найти указанный путь.

Вы могли бы найти путь, например, повысив детализацию выходных данных сборки до уровня диагностики.

Надеюсь, это поможет.