Использование Qt в VS2013

Недавно я открыл для себя Qt 5.2, и он выглядит довольно хорошо для меня, хотя у меня есть проблема: я хочу использовать его в Visual Studio 2013. Я скачал Надстройка Visual Studio 1.2.3 Alpha для Qt5 с официального сайта Qt.

Я создал проект в своем решении Visual Studio 2013 (Qt Application), и когда я пытаюсь его скомпилировать,

Error   3   error LNK2038: mismatch detected for '_MSC_VER': value '1700' doesn't match value '1800' in moc_graphicalui.obj E:\Applications\SizeWrite\GraphicalUI\qtmaind.lib(qtmain_win.obj)   GraphicalUI

Я уже кое-что читал, думаю, это был вопрос о переполнении стека, но я не совсем понял, что мне нужно сделать, чтобы правильно решить эту проблему. Итак, кто-нибудь может мне помочь?

Моя ОС: Windows 8.1 Pro x64

IDE: Visual Studio 2013 Ultimate x86


person Victor    schedule 26.02.2014    source источник


Ответы (2)


Похоже, это проблема с вашей установкой Qt, а не надстройкой VS. Я думаю, вы установили двоичные файлы для VS2012 (_MSC_VER=1700), а не для VS2013 (_MSC_VER=1800). Похоже, что на странице загрузки Qt еще нет двоичных файлов для VS2013, поэтому я бы предложил сборка их из исходников.

person the_mandrill    schedule 26.02.2014
comment
Я пытался собрать их из исходников, но они там указывают QMAKESPEC=win32-msvc2010. Я пытался изменить его вот так QMAKESPEC=win32-msvc2013, но в какой-то момент я потерпел неудачу. Если я правильно помню, компилятор вышел с кодом 3... - person Victor; 27.02.2014
comment
Я еще не пробовал собирать Qt с VS2013, но попробуйте просмотреть некоторые сообщения на форуме Qt, так как многие люди делали это - person the_mandrill; 27.02.2014

У меня есть аналогичные проблемы в VS2013, но на самом деле я спровоцировал эту ошибку (по ошибке :)), так как мне нужно было бы скомпилировать 32-битные библиотеки Qt вместо общих библиотек для VS2013, но, похоже, они созданы только для 64-битной архитектуры. . Таким образом, кажется, что мы должны использовать 64-битные библиотеки Qt, если мы используем VS2013, поскольку мы должны импортировать каталог с именем .../Qt/5.3/msvc2013_64 и нет каталога с именем, например, .../msvc2013_32 или просто .../msvc2013. На самом деле я спровоцировал эту ошибку при попытке использовать библиотеки из каталога VS2012 .../Qt/5.3/msvc2012_opengl, который действительно является более старой версией, чем платформа, которую я использую (VS2013).

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

Надеюсь, это решит вашу проблему, и если кто-нибудь знает, как скомпилировать 32-битные библиотеки Qt в VS2013, сообщите об этом. Спасибо.

person Víctor    schedule 08.11.2014