2012-03-02 10 views
4

私はMicrosoftの64ビットコンパイラでQtをビルドしようとしています。 qt-everywhere-opensource-src-4.8.0.tar.gzthe Qt downloads pageからダウンロードしてD:\Qtに抽出しました。 x64のクロスツールコマンドプロンプト起動した後、私は、次のコマンドを実行しました:Visual Studio 11 Expressベータ版のソースからQtをビルドしようとすると、このエラーが発生するのはなぜですか?

 
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ビット
  • のWindows 8用のVisual Studio 11.0.50.214.1ベータエクスプレス

は編集:場合私はを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が見つからないのですか?

+2

」は、Program Files \ Windowsキット\ 8.0 \ Include \ umにある必要があります。 (a)Qtがコンパイラにインクルードパスを渡していないか、(b)Windows 8用のVisual Studio 11 Beta Expressにこのヘッダーが含まれていない可能性があります。調べるには、ファイルがディスク上に存在するかどうかを確認してください。 Express for Windows 8では、Metroスタイルアプリケーションの作成のみがサポートされています。 –

+0

@JamesMcNellis:そう... Qtを構築するには、VS Express 2010に戻っていく必要がありますか? (ちなみに、ファイルはありません) –

答えて

5

Visual Studio 11 Beta Express for Windows 8は、Metroスタイルアプリケーションのみをサポートしています。完全なSDKは含まれていません。

Qtをビルドするには、the Visual Studio websiteからダウンロード可能な他のVisual Studio 11 Beta SKUが必要です。究極のSKUには確かに<shlobj.h>が含まれていますが、おそらく他の紛失しているヘッダーも含まれています(もちろんQtがビルドされているわけではありませんがVisual C++ 2010の不具合に頼っているかもしれません。あなたのマイレージは異なる場合があります)。

+0

VC++ 2010 Expressをインストールするだけで頭痛を避けることができます。すべてを説明してくれてありがとう。 –

0

エラーコード0x2はERROR_FILE_NOT_FOUNDにマップされます。 cl.exeの引数の1つが欠けていると推測されます。出力に基づいて、私はqsettings_win.cppが現在のパスにない、またはディスクに存在しないと言います。

+0

私はいくつかの情報で質問を更新しました。 –

2

私はこれが古い質問だと知っていますが、私はこの問題を抱えていました。

この不足しているファイルは、Windows SDKにあります。欠落している場合は、SDKが不足している必要があります。 VS 2010にはWindows 7.1 SDKをインストールし、VS 2012にはWindows 8 SDKが必要です。 デフォルトのファイルの場所は、インストール後:

  • のWindows 8 SDK:
  • C:\プログラムファイル(x86の)\ Windowsのキット\ 8.0 \ええと\
  • のWindows 7 SDKを含める:
  • Cを:\プログラムFiles \ Microsoft SDKs \ Windows \ v7.1 \
  • C:¥Program Files(x86)¥Microsoft SDKs¥Windows¥v7。0Aの\はWinRTためのQt 5.3ベータ版を構築しようとしたとき、私は同じエラーが発生しました
0

を含めます。

Windows 8.1VS 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で入手可能)を使用します。