2012-12-20 50 views
1

我想靜態編譯QT庫並使用/ MT(運行時靜態鏈接)。使用MSVC2010編譯使用/ MT的靜態QT庫

我按照下面的步驟: 1.轉到qmake.conf文件,並修改/ MD在發佈和調試配置 2.我運行命令行配置這樣的/ MT:配置-static -opensource 3我運行nmake

問題是nmake在運行幾秒後失敗。這裏是最後一個輸出:

[..........] 
qjson.cpp 
qjsondocument.cpp 
qjsonobject.cpp 
qjsonarray.cpp 
qjsonvalue.cpp 
qjsonparser.cpp 
qjsonwriter.cpp 
Generating Code... 
     cl -c -nologo -Zm200 -Zc:wchar_t -O2 -MT -W3 -w34100 -w34189 -GR -DUNICO 
DE -DWIN32 -DQT_BOOTSTRAPPED -DQT_LITE_UNICODE -DQT_NO_CAST_TO_ASCII -DQT_NO_COD 
ECS -DQT_NO_DATASTREAM -DQT_NO_LIBRARY -DQT_NO_QOBJECT -DQT_NO_SYSTEMLOCALE -DQT 
_NO_THREAD -DQT_NO_UNICODETABLES -DQT_NO_USING_NAMESPACE -DQT_NO_DEPRECATED -DQT 
_NO_TRANSLATION -DQT_QMAKE_LOCATION=\"F:/utils/Qt/5.0.0/Src/qtbase/bin/qmake\" - 
DQT_NO_CAST_FROM_ASCII -DQT_BUILD_BOOTSTRAP_LIB -DQT_BUILDING_QT -DQT_ASCII_CAST 
_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_ 
DISABLE_DEPRECATED_BEFORE=0x040800 -D_USE_MATH_DEFINES -DQT_NO_DEBUG -DQT_NO_EXC 
EPTIONS -I"..\..\..\include" -I"..\..\..\include\QtCore" -I"..\..\..\include\QtC 
ore\5.0.0" -I"..\..\..\include\QtCore\5.0.0\QtCore" -I"..\..\..\include\QtXml" - 
I"F:\utils\Qt\5.0.0\Src\qtbase\include\QtXml\5.0.0" -I"F:\utils\Qt\5.0.0\Src\qtb 
ase\include\QtXml\5.0.0\QtXml" -I"tmp" -I"..\..\corelib\global" -I"..\..\3rdpart 
y\zlib" -I"..\..\..\mkspecs\win32-msvc2010" -Fo.obj\release_static\ @C:\Users\DI 
DAC~1.PER\AppData\Local\Temp\nmE62A.tmp 
qdom.cpp 
..\..\..\include\QtXml\qdom.h(1) : fatal error C1083: Cannot open include file: 
'../../../../../../../../f:/utils/Qt/5.0.0/Src/qtbase/src/xml/dom/qdom.h': Inval 
id argument 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0 
\VC\BIN\cl.EXE"' : return code '0x2' 
Stop. 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0 
\VC\BIN\nmake.exe"' : return code '0x2' 
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2' 
Stop. 
NMAKE : fatal error U1077: 'cd' : return code '0x2' 
Stop. 

請問,你遇到同樣的結果嗎?任何人都知道如何解決這個問題?在此先感謝,

乾杯, 迪達克·佩雷斯

回答

1

我有固定的錯誤。我認爲configure命令會生成錯誤的頭文件。例如,在qdom.h qtbase /包括/ qtxml是這樣的:

#include "../../../../../../../../f:/utils/Qt/5.0.0/Src/qtbase/src/xml/dom/qdom.h" 

,我不得不搬到:

#include "../../src/xml/dom/qdom.h" 

而現在它的工作原理。也許這是qt構建系統的問題。

親切的問候,