2016-06-01 49 views
1

プロジェクトを実行しようとしていますが、このコンパイルエラーのためにビルドを行ってもすぐに終了します。私はWindowsのキット10、ビジュアルスタジオ14とdirectxのための64ビットライブラリを使用しています。QTでプロジェクトをコンパイルしようとしたときにJomエラーが発生しました

13:29:13: Running steps for project Phase64... 
13:29:13: Configuration unchanged, skipping qmake step. 
13:29:13: Starting: "C:\Qt\Tools\QtCreator\bin\jom.exe" 
    C:\Qt\Tools\QtCreator\bin\jom.exe -f Makefile.Debug 
    C:\Qt\5.6\msvc2015_64\bin\moc.exe -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1900 -D_WIN32 -D_WIN64 -IC:/Qt/5.6/msvc2015_64/mkspecs/win32-msvc2015 -IC:/Users/Phenom/Documents/QT/Phase64 -I"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10150.0/ucrt" -I"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include" -I"C:/Program Files (x86)/Microsoft DirectX SDK (February 2010)/Include" -I"C:/Program Files (x86)/Microsoft DirectX SDK (February 2010)/Include" -IC:/boost/boost_1_61_0 -I"C:/Program Files (x86)/Microsoft DirectX SDK (February 2010)/Include" -I"C:/Program Files (x86)/Windows Kits/10/Include" -I"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include" -IC:/Qt/5.6/msvc2015_64/include -IC:/Qt/5.6/msvc2015_64/include/QtWidgets -IC:/Qt/5.6/msvc2015_64/include/QtGui -IC:/Qt/5.6/msvc2015_64/include/QtANGLE -IC:/Qt/5.6/msvc2015_64/include/QtCore -I. ..\Phase64\mainwindow.h -o debug\moc_mainwindow.cpp 
:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include/atlbase.(3210): Parse error at "__identifier" 
jom: C:\Users\me\Documents\QT\build-Phase64-Desktop_Qt_5_6_0_MSVC2015_64bit-Debug\Makefile.Debug [debug\moc_mainwindow.cpp] Error 1 
    cl -c -FIstdafx.h -Yustdafx.h -Fpdebug\Phase64_pch.pch -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -EHsc /Fddebug\Phase64.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\Phase64 -I. -I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" -I"C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include" -I"C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include" -IC:\boost\boost_1_61_0 -I"C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include" -I"C:\Program Files (x86)\Windows Kits\10\Include" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include" -IC:\Qt\5.6\msvc2015_64\include -IC:\Qt\5.6\msvc2015_64\include\QtWidgets -IC:\Qt\5.6\msvc2015_64\include\QtGui -IC:\Qt\5.6\msvc2015_64\include\QtANGLE -IC:\Qt\5.6\msvc2015_64\include\QtCore -Idebug -I. -IC:\Qt\5.6\msvc2015_64\mkspecs\win32-msvc2015 -Fodebug\ @C:\Users\Phenom\AppData\Local\Temp\main.obj.1416.31.jom 
main.cpp 
    cl -c -FIstdafx.h -Yustdafx.h -Fpdebug\Phase64_pch.pch -nologo -Zc:wchar_t -FS -Zc:strictStrings -Zc:throwingNew -Zi -MDd -GR -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -EHsc /Fddebug\Phase64.pdb -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I..\Phase64 -I. -I"C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include" -I"C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include" -I"C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include" -IC:\boost\boost_1_61_0 -I"C:\Program Files (x86)\Microsoft DirectX SDK (February 2010)\Include" -I"C:\Program Files (x86)\Windows Kits\10\Include" -I"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include" -IC:\Qt\5.6\msvc2015_64\include -IC:\Qt\5.6\msvc2015_64\include\QtWidgets -IC:\Qt\5.6\msvc2015_64\include\QtGui -IC:\Qt\5.6\msvc2015_64\include\QtANGLE -IC:\Qt\5.6\msvc2015_64\include\QtCore -Idebug -I. -IC:\Qt\5.6\msvc2015_64\mkspecs\win32-msvc2015 -Fodebug\ @C:\Users\Phenom\AppData\Local\Temp\mainwindow.obj.1416.47.jom 
mainwindow.cpp 
jom: C:\me\Phenom\Documents\QT\build-Phase64-Desktop_Qt_5_6_0_MSVC2015_64bit-Debug\Makefile [debug] Error 2 
13:29:17: The process "C:\Qt\Tools\QtCreator\bin\jom.exe" exited with code 2. 
Error while building/deploying project Phase64 (kit: Desktop Qt 5.6.0 MSVC2015 64bit) 
When executing step "Make" 
13:29:17: Elapsed time: 00:04. 

誰もこの問題が発生しましたか?

+0

これには多くの原因があります。残りのログはどのように見えるのですか? Qt Creatorはエラーログウィンドウをこのレベルまでスクロールし、すべての有用な情報を効果的に未知のユーザに隠します。 – rubenvb

+0

@rubenvb投稿を更新し、ログ全体を追加しました。 –

+0

OK、私が望んでいたほど役に立ちません。 Options-> Build&Runの最初のタブで "nmakeの代わりにjomを使う"オプションのチェックを外して、もう一度やり直すことはできますか?ジョムの問題かもしれない。 – rubenvb

答えて

1

あなたの拡張ログは、Qtのmocは、ATLヘッダーに窒息されていることを示しています

C:\Qt\5.6\msvc2015_64\bin\moc.exe -DUNICODE -DWIN32 -DWIN64 -DQT_QML_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -D_MSC_VER=1900 -D_WIN32 -D_WIN64 -IC:/Qt/5.6/msvc2015_64/mkspecs/win32-msvc2015 -IC:/Users/Phenom/Documents/QT/Phase64 -I"C:/Program Files (x86)/Windows Kits/10/Include/10.0.10150.0/ucrt" -I"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/include" -I"C:/Program Files (x86)/Microsoft DirectX SDK (February 2010)/Include" -I"C:/Program Files (x86)/Microsoft DirectX SDK (February 2010)/Include" -IC:/boost/boost_1_61_0 -I"C:/Program Files (x86)/Microsoft DirectX SDK (February 2010)/Include" -I"C:/Program Files (x86)/Windows Kits/10/Include" -I"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include" -IC:/Qt/5.6/msvc2015_64/include -IC:/Qt/5.6/msvc2015_64/include/QtWidgets -IC:/Qt/5.6/msvc2015_64/include/QtGui -IC:/Qt/5.6/msvc2015_64/include/QtANGLE -IC:/Qt/5.6/msvc2015_64/include/QtCore -I. ..\Phase64\mainwindow.h -o debug\moc_mainwindow.cpp 
C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/atlmfc/include/atlbase.(3210): Parse error at "__identifier" 

これは、次のいずれかを意味する:

  1. mocは、ATLの汚れを扱うことができない、ここでQtに解決策を尋ねる必要があります(例えば、最小限のサンプルコード(例えば、3つのファイルだけを含むプロジェクト:main.cppsome_qobject.h/.cpp、ここではlasこれを再現するには、..\Phase64\mainwindow.h/.cppを完全に削除してください)。 (報告するhere

  2. コードで__identifierのようなマクロ/識別子を使用していると、実装によって予約されています。これをしないようにコードを修正してください。

  3. Qtのmocは本当にATLヘッダーを処理できません。 mocファイルにATLヘッダーが含まれないようにコードを変更します。 mocQ_MOC_RUNマクロを定義していますので、#ifndef Q_MOC_RUN ... #endifにATLヘッダーをラップしてmocに無視させることができます。

0

私はQt 5.9.2と同じ問題があります。 、少なくとも一時的にそれを修正プロファイルへのコード行を含めると、クリーン、qmakeのを実行し、プロジェクトをビルドするには:

DEFINES += _ATL_NATIVE_INITIALIZATION 
関連する問題