--- kdecore/CMakeLists.txt +++ kdecore/CMakeLists.txt @@ -275,7 +275,7 @@ endif (NOT Q_WS_X11 AND NOT Q_WS_QWS) kde4_add_library(kdecore SHARED ${kdecore_LIB_SRCS}) -target_link_libraries(kdecore ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTXML_LIBRARY} ${ZLIB_LIBRARY} ${kdecore_OPTIONAL_LIBS}) +target_link_libraries(kdecore ${QT_QTCORE_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTDBUS_LIBRARY} ${QT_QTXML_LIBRARY} ${ZLIB_LIBRARY} ${kdecore_OPTIONAL_LIBS} dl) if(WIN32) set(kdecore_LINK_INTERFACE_LIBRARIES ${QT_QTDBUS_LIBRARY} ${QT_QTCORE_LIBRARY} ${KDEWIN32_LIBRARIES}) --- kdecore/localization/kcatalog.cpp +++ kdecore/localization/kcatalog.cpp @@ -26,6 +26,8 @@ #include <kdebug.h> +#include <dlfcn.h> +#include <string.h> #include <stdlib.h> #include <locale.h> #include "gettext.h" @@ -39,10 +41,9 @@ static bool s_localeSet = false; int kInitializeLocale() { setlocale(LC_ALL, ""); -#if QT_VERSION >= 0x040500 - extern Q_CORE_EXPORT bool qt_locale_initialized; // in Qt since 4.5.0 - qt_locale_initialized = true; // as recommended by Thiago -#endif + if (strncmp(qVersion(), "4.5", 3) == 0) { // it's Qt 4.5 + *(bool*)dlsym(RTLD_DEFAULT, "qt_locale_initialized") = true; + } s_localeSet = true; return 1; }