Подтвердить что ты не робот

Как преобразовать обычный проект win32 (VС++ vcproj) в проект Qt?

Как преобразовать существующие файлы vcproj в файлы проекта, которые надстройка QT в Visual Studio распознает и рассматривает как действительные проекты Qt?

Должен ли я просто укусить пулю и создать новые проекты для замены старых, а затем добавить существующий код?

Я использую QT 4.6 и VS 2008 с надстройкой Qt 1.1.2. Оригинальные файлы vcproj НЕ сгенерированы с помощью QMake.

4b9b3361

Ответ 1

Используя Visual Studio 2010+, теперь можно преобразовать проект в проект Qt Addin, используя функцию "Преобразовать проект в проект Qt Add-in" в Qt Addin.

Следующие шаги из работают вокруг в ошибке QTVSADDINBUG-27. Это было протестировано с Visual Studio 2010, но должно работать аналогично новым версиям:

  • Щелкните правой кнопкой мыши на своем проекте в "Обозревателе решений", нажмите "Выгрузить проект"
  • Щелкните правой кнопкой мыши на своем проекте в "Обозревателе решений", нажмите "Изменить .vcxproj"
  • Добавьте строку <Keyword>Qt4VSv1.0</Keyword> между тегами <PropertyGroup Label="Globals"> и </PropertyGroup>.
  • Щелкните правой кнопкой мыши на своем проекте в "Обозревателе решений", нажмите "Обновить проект"
  • Щелкните правой кнопкой мыши на своем проекте в "Обозревателе решений", нажмите "Преобразовать проект в проект надстройки Qt"

Если у вас есть файлы заголовков в вашем проекте, вам нужно будет следовать инструкциям в этом , чтобы инициировать генерацию файлов moc_ * в разделе "Сгенерированные файлы" ".

Для выпусков Visual Studio старше 2010 года смотрите .

Ответ 2

Здесь ответ от инженера службы поддержки Nokia, имя удалено для защиты конфиденциальности:

Привет,

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

https://bugreports.qt.io/browse/QTVSADDINBUG-27

С уважением, Support Engineer, Qt Development Frameworks, Nokia >

Оригинальный вопрос

     

У нас есть довольно много старых проектов vcproj, которые мы хотим добавить к Qt.   В настоящее время у нас нет простого способа конвертировать эти старые vcproj   файлов в vcproj с поддержкой Qt.

     

Что я подразумеваю под Qt-enabled?

     

В vcproj с поддержкой не-Qt, когда я нажимаю правой кнопкой мыши на название проекта   в обозревателе решений все параметры, относящиеся к Qt, выделены серым цветом.

     

Было бы действительно полезно, если Nokia добавит эту возможность в надстройку VSTD.

Stackoverflow fellows, если вы хотите увидеть эту функцию, реализованную Nokia, пожалуйста, проголосуйте за нее по ссылке выше! =)

Ответ 3

Еще один ответ от инженера поддержки Qt; Я думаю, что первый картограф полезен, поскольку я не знал этого раньше:

Я думаю, что это недоразумение действительно. Если у вас есть проект Qt сгенерированный с надстройкой, тогда вы может изменить этот проект на qmake сгенерированный проект Qt - и наоборот; Если у вас есть .vcproj, который был созданный при выполнении qmake -tp vc, тогда вы можете преобразовать это в дополнение к Qt проект.

Нет никакой функции для преобразования стандартный проект win32 в Qt включенного проекта, поэтому предложение создано все еще, см.

https://bugreports.qt.io/browse/QTVSADDINBUG-27

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

Если вы создаете проект .pro для вас используя qmake, тогда вы должны быть способны для создания файла .vcproj с помощью 'qmake -tp vc 'в этом .pro файле. Руководство qmake доступно здесь:

http://doc.qt.io/qt-5/qmake-manual.html

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

Привет,

-

Инженер поддержки, разработка Qt Framework, Nokia

Ответ 4

Преобразование обычного проекта VC в проект QT должно быть проще, и сообщение об ошибке, отображаемое подключаемым модулем Qt при попытке добавить класс Qt к проекту, отличному от QT, чрезвычайно бесполезно, особенно при рассмотрении фактических различий между Qt.vcprojfile и не-Qt являются минимальными. Часто бывает, что у вас есть старый код, встроенный в библиотеки и библиотеки Dll. Во время перехода на Qt вы можете добавить класс Qt в существующий модуль, который ранее был проектом, отличным от Qt. Если в модуле имеется относительно мало исходных файлов, вам может быть легче воссоздать проект как проект Qt. Если он содержит сотни исходных файлов или является сложным другим способом, часто бывает проще просто отредактировать файл .vcproj. Сравнивая регулярный .vcproj с Qt, нетрудно понять, каковы различия:

  • Проект Qt имеет ключевое слово = "Qt4VS1.0" непосредственно перед TargetFrameWorkVersion в верхней части файла.
  • В нижней части файла вам нужно добавить необходимые глобальные (в конкретный QtVersion.Win32)
  • Вам нужно будет добавить расположение заголовочных файлов Qt в включить пути (для всех конфигураций сборки). Вы можете сделать это позже через пользовательский интерфейс visual studio
  • Для exe или dll вам также необходимо будет добавить локали библиотеки Qt и файлы библиотек в параметры компоновщика.

Вам действительно нужно только сделать 1 и 2 в текстовом редакторе, а затем вы можете перезагрузить проект в Visual Studio.

После настройки включите пути и библиотеки, вы сможете создать проект как обычно. Затем вы можете добавить новый класс Qt или преобразовать существующий класс в класс Qt. Чтобы сделать последнее, сначала удалите исходные файлы для существующего класса из проекта, иначе мастер Qt add class может подать жалобу.

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

Ответ 5

Я использую Qt VS Tools вместо надстройки Qt VS.

Инструкции

В файле .vcxproj внесите следующие изменения:

Добавьте <Keyword>Qt4VSv1.0</Keyword> в <Project><PropertyGroup Label="Globals"> (в соответствии с ответ Бенджамина).

Добавьте следующий элемент в <Project> (корневой элемент):

  <ProjectExtensions>
    <VisualStudio>
      <UserProperties MocDir=".\GeneratedFiles\$(ConfigurationName)" UicDir=".\GeneratedFiles" RccDir=".\GeneratedFiles" lupdateOptions="" lupdateOnBuild="0" lreleaseOptions="" Qt5Version_x0020_x64="5.6-msvc2013_64" MocOptions="" />
    </VisualStudio>
  </ProjectExtensions>

Обратите внимание, что значение атрибута Qt5Version_x0020_x64 должно совпадать с именем Qt-версии в Qt VS Tools. Вы можете установить произвольное значение, а затем исправить его в настройках Qt Project в Visual Studio.

Моя настройка

  • Visual Studio 2013
  • Qt VS Tools 2.0.0 Beta (видимо, ребрендинг надстройки Qt VS)
  • Qt 5.6 msvc2013_64

Примечания

Когда я последую за ответом Бенджамина и попробую "Преобразовать проект в проект Qt VS Tools", Visual Studio застрял.

Единственная специальная функция Qt, которую я пробовал с проектом, - это экспорт файла .pri.

У меня есть обратное проектирование необходимых изменений из нового проекта VS, созданного с использованием приложения Qt GUI шаблона.