[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Qt

From: Andreas Enge
Subject: Re: Qt
Date: Sun, 13 Oct 2013 16:18:24 +0200
User-agent: Mutt/1.5.21 (2010-09-15)

On Sun, Oct 13, 2013 at 03:54:16PM +0200, Ludovic Courtès wrote:
> Could you look for -licu in the Qt build log, to see which of those
> shared libs is meant to be linked against it?

None of them, as far as I can tell.

The only place where I found 'licu' is the following:

ICU auto-detection... ()
g++ -c -pipe -O2 -Wall -W  -I../../../mkspecs/linux-g++ -I. -o icu.o icu.cpp
g++ -Wl,-O1 -o icu icu.o     -licuuc -licui18n
ICU enabled.

This is during the configure phase.

The only interesting lines containing icu are the following:
g++ -c -include .pch/release-shared/QtCore -pipe -pthread 
-O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC 
-D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++ -I. -I../../include 
-I../../include/QtCore -I.rcc/release-shared -Iglobal -I../../tools/shared 
-I../3rdparty/harfbuzz/src -I../3rdparty/md5 -I../3rdparty/md4 
-I.moc/release-shared -o .obj/release-shared/qlocale_icu.o tools/qlocale_icu.cpp

and another one
g++ ... -o ... .obj/release-shared/qlocale_icu.o ...

So at least this gives us the library.

And qlocale_icu.c contains this:
        // resolve libicui18n
        QLibrary lib(QLatin1String("icui18n"), 
        if (!lib.load()) {
            qWarning() << "Unable to load library icui18n" << lib.errorString();
            status = ErrorLoading;
            return false;
        // resolve libicuuc
        QLibrary ucLib(QLatin1String("icuuc"), 
        if (!ucLib.load()) {
            qWarning() << "Unable to load library icuuc" << ucLib.errorString();
            status = ErrorLoading;
            return false;

So indeed this looks like dlopen at run time. ldd on shows that
in Qt 5, the library is explicitly linked with the icu libraries.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]