2012-02-06 11 views
0

雖然未能建立的Qt爲VS2005和32位

configure -platform win32-msvc2005 -arch x86 

效果很好,NMAKE立即給一個致命的錯誤:

Qt has not been ported to this architecture 

我建一個64位的Windows 7機器上。任何想法爲什麼發生這種情況

Generating Code... 
     cl -c -nologo -Zm200 -Zc:wchar_t- -O2 -MD -GR -EHsc -W3 -w34100 -w34189 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT 
-DQT_UIC -DQT_UIC_CPP_GENERATOR -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_TEXTCODEC -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST 
_TO_ASCII -DQT_NO_CODECS -DQT_NO_DATASTREAM -DQT_NO_GEOM_VARIANT -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_STL -DQT_NO_SYS 
TEMLOCALE -DQT_NO_TEXTSTREAM -DQT_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -DQT_NO_DEPRECATED -DQT_NODLL 
-I"." -I"." -I"cpp" -I"." -I"..\..\..\include" -I"..\..\..\include\QtCore" -I"..\..\..\include\QtXml" -I"..\..\xml" -I". 
.\..\..\mkspecs\win32-msvc2005" -Fotmp\obj\release_shared\ @C:\Users\ronen\AppData\Local\Temp\nm60BD.tmp 
cppextractimages.cpp 
cppwritedeclaration.cpp 
cppwriteicondata.cpp 
cppwriteicondeclaration.cpp 
cppwriteiconinitialization.cpp 
cppwriteincludes.cpp 
cppwriteinitialization.cpp 
Generating Code... 
     link /LIBPATH:"c:\dev\Qt480\src\tools\bootstrap\release" /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYST 
EM:CONSOLE "/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken=' 
6595b64144ccf1df' language='*' processorArchitecture='*'" /MANIFEST /MANIFESTFILE:"tmp\obj\release_shared\uic.intermedia 
te.manifest" /OUT:..\..\..\bin\uic.exe @C:\Users\ronen\AppData\Local\Temp\nm7547.tmp 
     mt.exe -nologo -manifest "tmp\obj\release_shared\uic.intermediate.manifest" -outputresource:..\..\..\bin\uic.exe 
;1 
     cd src\winmain\ && "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\nmake.exe" -f Makefile 

Microsoft (R) Program Maintenance Utility Version 8.00.50727.762 
Copyright (C) Microsoft Corporation. All rights reserved. 

     "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\nmake.exe" -f Makefile.Debug all 

Microsoft (R) Program Maintenance Utility Version 8.00.50727.762 
Copyright (C) Microsoft Corporation. All rights reserved. 

     cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -W3 -w34100 -w34189 -GR -EHsc -DQT_THREAD_SUPPORT -DUNICODE -DWIN32 - 
DQT_LARGEFILE_SUPPORT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILD 
ER -D_USE_MATH_DEFINES -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -I"..\..\include" -I" 
tmp" -I"..\..\include\QtCore" -I"c:\dev\Qt480\include\qtmain" -I"tmp\rcc\debug_shared" -I"tmp" -I"..\..\include\ActiveQt 
" -I"tmp\moc\debug_shared" -I"..\..\mkspecs\win32-msvc2005" -Fotmp\obj\debug_shared\ @C:\Users\ronen\AppData\Local\Temp\ 
nm7813.tmp 
qtmain_win.cpp 
c:\dev\qt480\include\qtcore\../../src/corelib/arch/qatomic_arch.h(96) : fatal error C1189: #error : "Qt has not been po 
rted to this architecture" 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\cl.EXE"' : return code '0x2' 
Stop. 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 8\VC\BIN\nmake.exe"' : return code '0x2' 
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2' 
Stop. 

回答

0

您不應該需要提供arch參數。從qatomic_arch.h的來源看來,它跳過了QT_ARCH_WINDOWS部分。所以嘗試建設沒有-arch。此外,請確保您是從32位Visual Studio命令提示符構建的(假設VS2005有一個64位編譯器 - 我不記得它是否做到了這一點)。如果使用VS2008構建,則需要根據需要啓動32或64位Visual Studio命令提示符。

+0

我正在嘗試。結果在一瞬間...... – JasonGenX 2012-02-07 04:11:29

+0

它似乎已經通過了失敗之前的階段。在沒有「-arch」參數的情況下在VS2005下構建。目前看起來不錯。這將需要整晚的時間來完成,我肯定會在早上知道。謝謝你的幫助。我會繼續並暫時標記你的答案。 – JasonGenX 2012-02-07 04:24:11

+0

很高興它進一步。嘗試使用jom來加速你的構建。不適用於所有人,但如果您有多核心機器,您可能會發現其速度提高了2-4倍http://labs.qt.nokia.com/2009/03/27/speeding-up-visual-c -qt-建立/ – 2012-02-07 11:08:04

0

嘗試用minigw來構建它。我認爲這會幫助你,當你正在執行nmake。我有關於使用nmake構建的問題。嘗試在VS2008的更高版本上構建它>

+0

這樣做的運行時含義是什麼?如果我的應用程序也使用MiniGW構建的QT,我的應用程序是否可以鏈接到使用VS2005構建的DLL/LIB?並行C運行時DLL部署怎麼樣? MiniGW會帶來什麼額外的行李? – JasonGenX 2012-02-06 22:17:19

+0

我還沒有做任何關於比較MiniGW和VS2005的測試,據我所知,我認爲它應該正常地鏈接它。你總是可以嘗試看看它是否工作。我只使用MiniGW。我正在使用它的android和桌面。一切運作良好。我的建議是嘗試一下,然後做備份。 – 2012-02-06 22:22:29

+0

任何新聞?你嘗試過什麼嗎? – 2012-02-07 00:43:58