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