Я пытаюсь собрать Qt с помощью 64-битного компилятора Microsoft. Я загрузил qt-everywhere-opensource-src-4.8.0.tar.gz
с страницы загрузки Qt и распаковал его в D:\Qt
. После запуска командной строки x64 Cross Tools я выполнил следующие команды:
set QTDIR=D:\Qt set PATH=%PATH%;%QTDIR%\bin configure.exe -debug-and-release -opensource -qt-zlib -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qt-style-windowsxp -qt-style-windowsvista -platform win32-msvc2010
Процесс шел достаточно гладко в течение нескольких минут, но резко остановился со следующей ошибкой:
... qurl.cpp qsettings_win.cpp NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 11.0\VC\BI N\x86_amd64\cl.EXE"' : return code '0x2' Stop. Building qmake failed, return code 2
Я понятия не имею, что вызывает эту ошибку и что с ней делать — сообщение об ошибке далеко не полезное. Вот как выглядит моя система:
- Потребительская предварительная версия Windows 8, 32-разрядная версия
- Visual Studio 11.0.50.214.1 Бета Экспресс для Windows 8
Изменить: если я cd
войду в каталог qmake
и запущу nmake
, мы обнаружим настоящую ошибку:
qfilesystemengine_win.cpp qfsfileengine_win.cpp D:\Qt\src\corelib\io\qfsfileengine_win.cpp(64) : fatal error C1083: Cannot open include file: 'shlobj.h': No such file or directory D:\Qt\src\corelib\io\qfilesystemengine_win.cpp(66) : fatal error C1083: Cannot o pen include file: 'shlobj.h': No such file or directory NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 11.0\VC\BI N\x86_amd64\cl.EXE"' : return code '0x2' Stop.
Почему отсутствует shlobj.h
?
<shlobh.h>
должен находиться в Program Files\Windows Kits\8.0\Include\um. Возможно, (а) Qt не передает этот путь к компилятору, или (б) Visual Studio 11 Beta Express для Windows 8 не включает этот заголовок. Чтобы узнать, посмотрите, существует ли файл на диске. Обратите внимание, что Express для Windows 8 поддерживает только создание приложений в стиле Metro. - person James McNellis   schedule 02.03.2012