Почему я получаю эту ошибку при попытке собрать Qt из исходного кода в Visual Studio 11 Express Beta? - PullRequest
4 голосов
/ 02 марта 2012

Я пытаюсь собрать 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 Consumer Preview 32-bit
  • Visual Studio 11.0.50.214.1 Beta Express для 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

Ответы [ 4 ]

5 голосов
/ 02 марта 2012

Visual Studio 11 Beta Express для Windows 8 поддерживает только приложения в стиле Metro. Он не включает в себя полный SDK.

Для сборки Qt вам понадобится один из других бета-версий Visual Studio 11 Beta, который можно загрузить с на веб-сайте Visual Studio . Ultimate SKU, безусловно, включает <shlobj.h> и, возможно, любые другие отсутствующие заголовки (конечно, это не обязательно означает, что Qt будет собираться; он может непреднамеренно полагаться на причуды в Visual C ++ 2010 или бета-версия может иметь ошибки, которые мешают ему здание; ваш пробег может варьироваться).

2 голосов
/ 12 марта 2013

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

Этот отсутствующий файл можно найти в Windows SDK.Если они отсутствуют, значит, вам не хватает SDK.Для VS 2010 установите Windows 7.1 SDK и, соответственно, для VS 2012 вам потребуется Windows 8 SDK.Расположение файлов по умолчанию после установки:

  • Windows 8 SDK:
  • C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Include \ um
  • Windows 7SDK:
  • C: \ Program Files \ Microsoft SDK \ Windows \ v7.1 \ Включить
  • C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Включить
0 голосов
/ 18 апреля 2014

Я столкнулся с той же ошибкой при попытке собрать Qt 5.3 Beta для WinRT .

Я был на Windows 8.1 с VS 2013 (Professional).Чтобы решить проблему, мне пришлось:

  • Скачать и установить Windows 8.1 SDK .Он будет помещен в C:\Program Files (x86)\Windows Kits\8.1;
  • Использовать VS2013 x86 Командная строка собственных инструментов , доступно в C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\Shortcuts.
0 голосов
/ 02 марта 2012

Код ошибки 0x2 отображается на ERROR_FILE_NOT_FOUND. Лучше всего предположить, что один из аргументов cl.exe отсутствует. Основываясь на выводе, я бы сказал, что qsettings_win.cpp не находится в текущем пути или не присутствует на диске.

...