guix-devel
[Top][All Lists]
Advanced

[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 
-I/nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0/include/glib-2.0 
-I/nix/store/dly2cqqprdsb4fqabrw0bxm1n42vpi6w-glib-2.38.0/lib/glib-2.0/include 
-O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -fPIC 
-DQT_SHARED -DQT_BUILD_CORE_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII 
-DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER 
-DELF_INTERPRETER=\"\" -DQLIBRARYINFO_EPOCROOT -DQT_USE_ICU 
-DHB_EXPORT=Q_CORE_EXPORT -DQT_NO_DEBUG -D_LARGEFILE64_SOURCE 
-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 libQtCore.so.4.8.5 ... .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"), 
QLatin1String(U_ICU_VERSION_SHORT));
        lib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
        if (!lib.load()) {
            qWarning() << "Unable to load library icui18n" << lib.errorString();
            status = ErrorLoading;
            return false;
        }
and
        // resolve libicuuc
        QLibrary ucLib(QLatin1String("icuuc"), 
QLatin1String(U_ICU_VERSION_SHORT));
        ucLib.setLoadHints(QLibrary::ImprovedSearchHeuristics);
        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 libQt5Core.so shows that
in Qt 5, the library is explicitly linked with the icu libraries.

Andreas




reply via email to

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