Elmi
Elmi

Reputation: 6213

Building Qt 5.4.1 fails with linker error

I'm trying to build Qt 5.4.1 according to the description from http://wiki.qt.io/Building_Qt_5_from_Git but with no success. The funny thing: I get a linker error about some missing symbols, not an error about a missing library that might come from a missing additional package! So I'm assuming a problem in Qt itself. That's what I'm doing:

Building under windows using VS2013, configure with following options:

-debug-and-release -release -force-debug-info -nomake tests -nomake examples -qt-zlib -qt-libjpeg -qt-libpng -opengl desktop -plugin-sql-sqlite

After building using "nmake" successfully for a very long time it finally fails with this error:

link /NOLOGO /DYNAMICBASE /NXCOMPAT /DEBUG /OPT:REF /INCREMENTAL:NO /DLL /SUBSYSTEM:WINDOWS /VERSION:5.41 /MANIFEST:embed /OUT:D:\Qt\Qt5.4.1\5.4.1\src\qtbase\lib\Qt5WebKit.dll@C:\Users\USER~1\AppData\Local\Temp\nm4CC8.tmp
Creating library D:\Qt\Qt5.4.1\5.4.1\src\qtbase\lib\Qt5WebKit.lib and object D:\Qt\Qt5.4.1\5.4.1\src\qtbase\lib\Qt5WebKit.exp WebCore.lib(TextAllInOne.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl WebCore::TextCodecWin::registerExtendedEncodingNames(void (__cdecl*)(char const *,char const *))" (?registerExtendedEncodingNames@TextCodecWin@WebCore@@SAXP6AXPBD0@Z@Z) referenced in function "char const * __cdecl WebCore::atomicCanonicalTextEncodingName<unsigned char>(unsigned char const *,unsigned int)" (??$atomicCanonicalTextEncodingName@E@WebCore@@YAPBDPBEI@Z)WebCore.lib(TextAllInOne.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl WebCore::TextCodecWin::registerExtendedCodecs(void (__cdecl*)(char const *,class WTF::PassOwnPtr<class WebCore::TextCodec> (__cdecl*)(class WebCore::TextEncoding const &,void const *),void const *))" (?registerExtendedCodecs@TextCodecWin@WebCore@@SAXP6AXPBDP6A?AV?PassOwnPtr@VTextCodec@WebCore@@@WTF@@ABVTextEncoding@2@PBX@Z2@Z@Z) referenced in function "char const * __cdecl WebCore::atomicCanonicalTextEncodingName<unsigned char>(unsigned char const *,unsigned int)" (??atomicCanonicalTextEncodingName@E@WebCore@@YAPBDPBEI@Z)
D:\Qt\Qt5.4.1\5.4.1\src\qtbase\lib\Qt5WebKit.dll : fatal error LNK1120: 2 unresolved externals

To make it easier to read, this is the relevant part of the linker error message:

unresolved external symbol "public: static void __cdecl WebCore::TextCodecWin::registerExtendedCodecs(void (__cdecl*)(char const *,class WTF::PassOwnPtr<class WebCore::TextCodec> (__cdecl*)(class WebCore::TextEncoding const &,void const *),void const *))"(?registerExtendedCodecs@TextCodecWin@WebCore@@SAXP6AXPBDP6A?AV?PassOwnPtr@VTextCodec@WebCore@@@WTF@@ABVTextEncoding@2@PBX@Z2@Z@Z)
referenced in function "char const * __cdecl WebCore::atomicCanonicalTextEncodingName<unsigned char>(unsigned char const *,unsigned int)" (??atomicCanonicalTextEncodingName@E@WebCore@@YAPBDPBEI@Z)

Any ideas how to solve this?

Upvotes: 1

Views: 549

Answers (1)

deter
deter

Reputation: 36

You can change #if OS(WINDOWS) to #if OS(WINCE) in qtwebkit/Source/WebCore/platform/text/TextEncodingRegistry.cpp:301 in extendTextCodecMaps.

Looking at ChangeLog-2012-10-02 it was originally only used for Windows CE.

Upvotes: 1

Related Questions