2016-06-01 6 views
1

zu kompilieren Ich versuche, mein Projekt auszuführen und es schafft zu bauen, aber schnell aufgrund dieser Kompilierung Fehler beendet. Ich verwende 64-Bit-Bibliotheken für Windows-Kits 10, Visual Studio 14 und DirectX.Jom Fehler beim Versuch, ein Projekt in QT

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. 

Hat jemand dieses Problem schon einmal festgestellt?

+0

Dies kann viele Ursachen haben. Wie sieht der Rest des Protokolls aus? Qt Creator scrollt das Fehlerprotokollfenster auf ungefähr diese Ebene und versteckt damit alle nützlichen Informationen für den nicht ahnenden Benutzer. – rubenvb

+0

@rubenvb Ich habe den Beitrag aktualisiert und das ganze Protokoll hinzugefügt. –

+0

OK, nicht so hilfreich, wie ich es mir erhofft hatte. Können Sie die Option "jom statt nmake verwenden" auf der ersten Registerkarte unter Optionen-> Build & Run deaktivieren und es erneut versuchen? Könnte ein jom Problem sein. – rubenvb

Antwort

1

Ihre erweiterte Protokoll zeigt, dass Qt moc auf dem ATL-Header erstickt:

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" 

Das bedeutet, eine der folgenden Aktionen:

  1. moc können die ATL verschmieren nicht handhaben, in denen In diesem Fall müssten Sie Qt um eine Lösung bitten (z. B. indem Sie einen Fehlerbericht mit einem! minimum! -Beispielcode einreichen (z. B. ein Projekt mit nur drei Dateien: main.cpp, some_qobject.h/.cpp) t eine ist eine vollständige Reduzierung Ihrer ..\Phase64\mainwindow.h/), um dies zu reproduzieren. (melden Sie es here)

  2. Sie sind mit Makros/Kennungen wie __identifier in Ihrem Code, die durch die Implementierung reserviert sind. Korrigieren Sie Ihren Code, um dies nicht zu tun.

  3. Qt's moc kann wirklich nicht mit den ATL-Headern umgehen. Ändern Sie Ihren Code so, dass die moc Ed-Datei die ATL-Header nicht enthält. moc definiert ein Q_MOC_RUN Makro, so dass Sie die ATL-Header in #ifndef Q_MOC_RUN ... #endif umhüllen können, damit sie vom Moc ignoriert werden.

0

Ich habe das gleiche Problem mit Qt 5.9.2. Um es zu beheben zumindest vorübergehend, um diese Code-Zeile auf die Pro-Datei und starten Sie sauber, qmake und baut das Projekt:

DEFINES += _ATL_NATIVE_INITIALIZATION 
Verwandte Themen