|
From: | Mark Brand |
Subject: | Re: [Mingw-cross-env-list] Qt libjscore.a not installed |
Date: | Mon, 05 Dec 2011 09:44:06 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:8.0.1) Gecko/20111121 Firefox/8.0.1 SeaMonkey/2.5 |
Hi Gareth,
Tested the latest patch and it is building successfully.
Thanks.
Too bad Qt isn't going to fix the symbol clash in libjscore.a and libQtScript.a. MCE/usr/i686-pc-mingw32/lib/libjscore.a(OpaqueJSString.o):OpaqueJSString.cpp:(.text+0xa0): multiple definition of `OpaqueJSString::ustring() const' MCE/usr/i686-pc-mingw32/lib/libQtScript.a(OpaqueJSString.o):OpaqueJSString.cpp:(.text+0xa0): first defined here
Recently at least, QtWebKit and QtScript use different versions of java script, but I don't know the details. They come into conflict using static linking. The official "solution" noted in QTBUG-8657 was to "remove support for static linking of QtWebKit". Mingw-cross-env restores support for static linking of QtWebKit, but cannot solve the symbol conflict when using QtWebKit and QtScript in the same application.
The libjscore.a library is always built as a static library, but it's normally linked into the shared QtWebKit and not installed. I suppose dynamic linking avoids the problem by not exporting libjscore.a symbols from QtWebKit DLL, or maybe there's DLL magic involved that I don't know about.
If you need to link an application statically to both static QtScript and QtWebKit, I wonder if you can get away with linking to either libqtscript.a or libjscore.a, but not both. Perhaps the differences don't matter much to your application. I have more experience building these libraries than using them though.
Mark
[Prev in Thread] | Current Thread | [Next in Thread] |