2010-01-18 5 views
23

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

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

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

+0

Я также ищу то же решение. – sivabudh

+1

@Morten, я только что отправил запрос функции Nokia (у меня есть стандартная поддержка). Я буду публиковать обновления здесь, когда я получаю ответы от них. – sivabudh

+0

Отлично ShaChris23. –

ответ

25

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

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

  1. правой кнопкой мыши на проект в «обозревателе решений», нажмите на кнопку «Выгрузка проекта»
  2. правой кнопкой мыши на вашем проекте «Решение Explorer ", нажмите« Редактировать .vcxproj »
  3. Добавить строку <Keyword>Qt4VSv1.0</Keyword> между тегами <PropertyGroup Label="Globals"> и </PropertyGroup>.
  4. правой кнопкой мыши на проект в «обозревателе решений», нажмите на кнопку «Reload Project»
  5. правой кнопкой мыши на проект в «обозревателе решений», нажмите на «Преобразование проекта в Qt Добавить в проект»

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

Для изданий Visual Studio старше 2010 года см. Это work around.

+1

Спасибо за это. Я смотрел повсюду, и это единственный комментарий, рассказывающий, как это сделать на самом деле. За исключением того, что после того, как я сделал то, что вы сказали, мне пришлось удалить все файлы cpp/h из проекта и повторно добавить их. После этого он создал папку «Сгенерированные файлы» с файлами moc. Благодарю. – bmahf

+0

@bmahf рад узнать, что это сработало для вас. Что касается генерации файлов moc, вы попробовали [ответ] (http://stackoverflow.com/a/6642863/262789), связанный в последнем абзаце моего ответа. Он содержит инструкции по запуску генерации файлов moc_ *. – Benjamin

+0

Работает и для VS2013. – Bim

8

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

Привет,

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

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

С уважением, поддержки инженер, Qt рамочные программы развития, Nokia >

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

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

Что я имею в виду под Qt-enabled?

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

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

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

+2

В настоящее время есть решение, обходное упоминание в [комментарий] (https://bugreports.qt-project.org/browse/QTVSADDINBUG-27?focusedCommentId=165769&page=com.atlassian.jira.plugin.system. issueetabpanels: comment-tabpanel # comment-165769) в отчете об ошибке или см. мой ответ ниже. – Benjamin

1

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

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

Там нет функциональности для преобразования регулярного проекта win32 в поддержкой проект в Qt , поэтому предложение создано еще в силе, см:

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

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

Если вы создаете .pro для вас проект с помощью QMAKE, то вы должны быть в состоянии создать файл .vcproj с помощью «QMAKE -ТПА Vc» на этот файл .pro. Руководство по qmake можно найти здесь:

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

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

С уважением,

-

инженер технической поддержки, Qt Development Каркасы, Nokia

1

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

  1. Проект А Qt имеет Keyword = «Qt4VS1.0» непосредственно перед TargetFrameWorkVersion линии в верхней части файла.
  2. В нижней части файла, который необходимо добавить требуемые Globals (в частности QtVersion.Win32)
  3. Вам нужно будет добавить расположение заголовочных файлов Qt к включают пути (для всех конфигураций сборки) , Вы можете сделать это позже через пользовательский интерфейс визуальной студии
  4. Для exe или dll вам также необходимо будет добавить локали библиотеки Qt и файлы библиотек в параметры компоновщика.

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

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

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

1

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

Инструкции

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

Добавить <Keyword>Qt4VSv1.0</Keyword> в <Project><PropertyGroup Label="Globals"> (в соответствии с Benjamin's answer).

Добавьте следующий элемент в <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

Примечания

Когда я следую Benjamin's answer и попробую «Преобразовать проект в проект Qt VS Tools», Visu al Studio застревает.

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

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

+0

Большое спасибо. Это орехи, которые плагин не делает для вас. – CaptRespect

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