Visual C++ 2010 Express: как использовать с Qt?
Я не понимаю, как заставить Qt работать с Visual Studio Express. Большинство поисковых запросов в Интернете содержат инструкции по компиляции Qt, используя такие инструкции, как:
- Установите MSVC2005 или MSVC2008
- Установите самый последний Platform SDK (@ MSDN: "Platform SDK для Windows Server 2003 R2")
- Из SDK платформы вам нужно установить хотя бы базовые + интернет-опции
- Затем загрузите и извлеките последний снимок или предварительный выпуск в D:\Qt\4.xx
- Откройте консоль с загруженными настройками MSVC (см. Меню инструментов MSVC) и перейдите в каталог Qt
- Введите "configure -platform win32-msvc2005" без кавычек
- Это создаст вам файлы проекта, которые вам понадобятся
- После этого это так же просто, как запустить "nmake" и выпить много кофе
Затем добавьте D:\Qt\4.xx\bin и D:\Qt\4.xx\lib в переменную окружения вашего пути, и вы сможете использовать эту версию Qt из любой точки вашей системы. Последний также может быть добавлен в раздел библиотеки в опциях MSVC.
(с http://www.qtcentre.org/threads/11710-Visual-Studio-2005-Express)
Тем не менее, когда я перехожу на страницу загрузки Qt ( http://qt.nokia.com/downloads), появляется загрузка для Visual Studio с пометкой: "Библиотеки Qt 4.7.1 для Windows (VS 2008, 228 МБ)"
Я в замешательстве, мне на самом деле все еще нужно его построить? Или это уже построено?
4 ответа
Использование загружаемого exe-файла из qt (http://get.qt.nokia.com/qt/source/qt-win-opensource-4.7.1-vs2008.exe), похоже, не работает с Visual Studio 2010. Я пытался собрать простая программа hello world из командной строки, которая не запускается. Я повторю свой комментарий из предыдущего ответа.
Я попробовал пример "Привет, мир" из doc.qt.nokia.com/4.7/gettingstartedqt.html. Я был в состоянии построить проект, и exe генерируется. Однако exe не запускается и генерирует системное диалоговое окно с ошибкой о том, что "параллельная конфигурация неверна...". Я запустил SxsTrace, и он говорит:
...
INFO: Begin assembly probing.
INFO: Did not find the assembly in WinSxS.
INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC90.DebugCRT\ 9.0.21022.8__...\Microsoft.VC90.DebugCRT.DLL.
INFO: Attempt to probe manifest at C:\qthello\debug\Microsoft.VC90.DebugCRT.DLL.
INFO: Attempt to probe manifest at C:\qthello\debug\Microsoft.VC90.DebugCRT.MANIFEST.
INFO: Attempt to probe manifest at C:\qthello\debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.DLL.
INFO: Attempt to probe manifest at C:\qthello\debug\Microsoft.VC90.DebugCRT\Microsoft.VC90.DebugCRT.MANIFEST.
INFO: Did not find manifest for culture Neutral.
INFO: End assembly probing.
ERROR: Cannot resolve reference Microsoft.VC90.DebugCRT,processorArchitecture="x86", publicKeyToken="...",type="win32",version="9.0.21022.8".
ERROR: Activation Context generation failed.
End Activation Context Generation.
Мне кажется, что он пытается использовать VS2008 (которого у меня нет). Это имеет смысл, я думаю, так как загрузка для VS2008.
Я находился в процессе компиляции qt 4.7.1, используя инструкции в моем вопросе (используя win32-msvc2010 в качестве целевой платформы), когда я задал этот SO-вопрос, и компиляция завершилась. Я перестроил проект "Привет, мир!", И исполняется программа. Таким образом, похоже, что ответ для использования с Visual Studio Express 2010, который вам в настоящее время нужно скомпилировать (по крайней мере, до тех пор, пока Qt не выпустит опцию загрузки VS2010). Тем не менее, я считаю, что если вы используете VS2008, вам не нужно будет компилировать.
Двоичные файлы Qt, предоставляемые Nokia для Windows, предназначены либо для MinGW, либо для Visual Studio 2008, обе для компиляции 32-битных исполняемых файлов. Если вам нужны двоичные файлы Qt для VS 2005 (32 бита), вы можете найти их в их архивах.
Для всего остального вам нужно скомпилировать Qt самостоятельно. Особенно для:
- Visual Studio 2008 64 бит
- 64-разрядная версия Visual Studio 2008 Express Edition: вам нужен Windows SDK 7.0, который предоставляет 64-разрядные компиляторы и компилирует Qt вместе с ними.
- Visual Studio 2010 32-разрядная и 64-разрядная версии
В общем, вы не можете связать библиотеки, скомпилированные с разными компиляторами, то есть использовать двоичные файлы Qt, созданные с 32-битным VC 9.0 (VS 2008), и связать их с исполняемым файлом, созданным с 32-битным VC 10.0 (VS 2010).
Просто небольшое обновление по этому вопросу. Скачивая QTSDK (и используя cmake вместо qmake, все выглядит довольно неплохо. За исключением того факта, что установщик QTSDK не обновил путь для qmake.exe, и вы должны сделать это вручную.
Протестировано с QtSDK 4.8 и Visual Studio Express 2010
http://qt.nokia.com/downloads имеет ссылку под названием qt-vs-addin-1.1.7.exe
(57 МБ)
Вам, вероятно, понадобится и этот.,
Я не думаю, что вам нужно компилировать библиотеки, так как сейчас для них есть загрузка.,
Так что получите 228 МБ библиотек libs и 57 МБ - и все будет готово.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не использую MSVC (пока?), Поэтому, пожалуйста, дайте мне знать, если он работает.