[PyQt] Problem with PyQt linking against static builds of Qt on Windows using MinGW

Phil Thompson phil at riverbankcomputing.co.uk
Wed Aug 1 23:06:58 BST 2007


On Wednesday 01 August 2007 10:28 pm, Marvin Greenberg (P) wrote:
> I've built qt 4.3 statically on windows using MinGW.  Then (after
> messing around with PyQt 4.2 for a while) found and downloaded the
> updated PyQt 4.3.  What I want is dynamically loadable PyQt python
> modules, that simply include the static qt libraries.  configure.py
> realizes I have statically linked qt and tells me that I either have to
> do --static or --consolidated.  When I use --static the build runs to
> completion but the QtCore.pyd (for example) is only 5k and doesn't
> define any symbols.

--static is only used when you are building your own Python interpreter with 
PyQt built in.

> When I use -g, the build fails while trying to 
> create pylupdate4.exe with thousands of unresolved symbols.
>
> Is linking against static libraries using minGw not particularly supported?

I've never done it.

> Here's my call to configure.py (more or less):
> c:/python25/python configure.py -w -c -p win32-g++ -g
>
> Here's the failing link line:
>
> g++ -enable-stdcall-fixup -Wl,-enable-auto-import
> -Wl,-enable-runtime-pseudo-reloc -Wl,-subsystem,console -Wl,-s -o
> pylupdate4.exe fetchtr.o merge.o numberh.o sametexth.o main.o
> metatranslator.o proparser.o translator.o simtexth.o moc_translator.o
> -Lc:/tena_home/TENA/qt-v4.3/lib -lQtCore -lkernel32 -luser32 -lshell32
> -luuid -lole32 -ladvapi32 -lws2_32 -lQtGui -lgdi32 -lcomdlg32 -loleaut32
> -limm32 -lwinmm -lwinspool -lws2_32 -lole32 -luuid -luser32 -ladvapi32
> -lQtXml
>
> With some 2000 errors like:
> c:/tena_home/TENA/qt-v4.3/lib/libQtGui.a(qtextedit.o):qtextedit.cpp:(.text$
>_ZN16QTextEditPrivateD0Ev[QTextEditPrivate::~QTextEditPrivate()]+0x87):
> undefined reference to `QBasicTimer::stop()'
> c:/tena_home/TENA/qt-v4.3/lib/libQtGui.a(qtextedit.o):qtextedit.cpp:(.text$
>_ZN16QTextEditPrivateD0Ev[QTextEditPrivate::~QTextEditPrivate()]+0x135):
> undefined reference to `QBasicTimer::stop()'
>
> If i reorder the libraries to -lQtXml -lQtGui -lQtCore, I get down to
> about 200 unresolved references,  most to things like __imp____iob,
> __filbuf, __errno, __imp__pctype

Which is all stdlib stuff.

Phil


More information about the PyQt mailing list