Compile Qt 5.1.1 static on Windows XP - Linking ICU fails
-
Hi,
i am still trying to build Qt 5.1.1 static on my windows XP machine.I added -static -static-libgcc into qmake.conf for win32-g++ platform.
Then i compiled ICU static from source and called:
C:> set PATH=%PATH%;C:\icu\dist\lib
C:> set INCLUDE=%INCLUDE%;C:\icu\dist\include
C:> set LIB=%LIB%;C:\icu\dist\libEverything is on the right place like above, but when i compile Qt linking against the ICU libs aborts compilation. It seems somehow the (existing) libs can not be found by linker....
But they exist... Any ideas???Output:
@mingw32-make[4]: Entering directory 'c:/Qt/qt-everywhere-opensource-src-5.1.1/qt-everywhere-opensource-src-5.1.1/qtbase/src/tools/uic'
g++ -static -static-libgcc -Wl,-s -Wl,-subsystem,console -o ../../../bin/uic.exe object_script.uic.Release -LC:/Qt/icu/dist/lib -LC:/Qt/qt-everywhere-opensource-src-5.1.1/qt-everywhere-opensource-src
-5.1.1/qtbase/lib -lQt5Core -lole32 -luuid -lws2_32 -ladvapi32 -lshell32 -luser32 -lkernel32 -lz -lsicuin -lsicuuc -lsicudt
c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lsicuin
c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lsicuuc
c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lsicudt
collect2.exe: error: ld returned 1 exit status
Makefile.Release:105: recipe for target '../../../bin/uic.exe' failed
mingw32-make[4]: *** [../../../bin/uic.exe] Error 1
mingw32-make[4]: Leaving directory 'c:/Qt/qt-everywhere-opensource-src-5.1.1/qt-everywhere-opensource-src-5.1.1/qtbase/src/tools/uic'
Makefile:34: recipe for target 'release' failed
mingw32-make[3]: *** [release] Error 2
mingw32-make[3]: Leaving directory 'c:/Qt/qt-everywhere-opensource-src-5.1.1/qt-everywhere-opensource-src-5.1.1/qtbase/src/tools/uic'
Makefile:384: recipe for target 'sub-uic-make_first' failed
mingw32-make[2]: *** [sub-uic-make_first] Error 2
mingw32-make[2]: Leaving directory 'c:/Qt/qt-everywhere-opensource-src-5.1.1/qt-everywhere-opensource-src-5.1.1/qtbase/src'
Makefile:41: recipe for target 'sub-src-make_first' failed
mingw32-make[1]: *** [sub-src-make_first] Error 2
mingw32-make[1]: Leaving directory 'c:/Qt/qt-everywhere-opensource-src-5.1.1/qt-everywhere-opensource-src-5.1.1/qtbase'
makefile:56: recipe for target 'module-qtbase-make_first' failed
mingw32-make: *** [module-qtbase-make_first] Error 2@ -
Ok.. i found that the naming is wrong.... The ICU libs are named: icuuc.lib but somehow Qt needs sicuuc.lib
with prepending 's'....
That solved the linking problem, but started a new one:uic.exe seems to be build dynamically and again complains about missing: @libgcc_s_sjlj-1.dll@ ??
but qmake.conf for win32-g++ mkspecs has:
@ QMAKE_LFLAGS = -static -static-libgcc@
set...:(
-
I'm using vc2012 to compile qt, also ran into this problem while nmake.
qapplicationargumentparser.cpp
link /NOLOGO /DYNAMICBASE /NXCOMPAT /INCREMENTAL:NO /SUBSYSTEM:CONSOLE "
/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' versio
n='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='' processorArchitecture
=''" /OUT:C:\qt-everywhere-opensource-src-5.1.1\qtbase\bin\xmlpatterns.exe @C:
Users\Linear\AppData\Local\Temp\nm2790.tmp
LINK : fatal error LNK1181: 無法開啟輸入檔 'sicuin.lib'
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 11.0\VC\BI
N\link.EXE"' : 傳回碼 '0x49d'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 11.0\VC\BI
N\nmake.exe"' : 傳回碼 '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : 傳回碼 '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : 傳回碼 '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : 傳回碼 '0x2'
Stop.Here's a step by step build guide using VS2012, if you're interested.
"http://blog.csdn.net/ztz0223/article/details/8917182":http://blog.csdn.net/ztz0223/article/details/8917182I'm still following this guide try to make it built.