Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-103106

Regression: online installer ships ICU development libraries without headers



    • Bug
    • Resolution: Unresolved
    • P1: Critical
    • None
    • 6.x
    • Packaging & Installer
    • None
    • Fedora 35
    • Linux/Other display system


      This seems to be a regression of QTBUG-27930. It was fixed for some Qt5 releases, but it is happening again in Qt >= 5.9 and all Qt6.

      In Qt6.x it is even more important for users to be able to integrate libICU in Qt applications, because QTBUG-86437.

      The online installer ships the ICU development libraries (the files with the .so suffix, without a number) but not the corresponding ICU headers. The result is that when linking a project you will get errors like:

      undefined reference to `ucnv_open_69'

      The Qt 6.x libraries are compiled against ICU 56, but your system libraries may be newer. For instance Fedora 35 comes with ICU 69. The compiler included the ICU 69 headers installed in your system (at /usr/include), but the linker is trying to use the ICU 56 libraries, installed by the online installer probably at your $HOME.

      One solution is to remove all the ICU development libraries from the Qt prefix. For instance:

      libicudata.so        <- remove this symlink!
      libicudata.so.56     <- leave this symlink alone
      libicudata.so.56.1   <- leave also the library file 

      This project shows the issue: https://github.com/pedrolcl/icu_qt_poc


        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.



              releaseteam Qt Release Team
              plcl Pedro López-Cabanillas
              0 Vote for this issue
              2 Start watching this issue



                Gerrit Reviews

                  There are no open Gerrit changes