Congratulations to our 2022 Qt Champions!

How to distribute my build of ICU with my app, on Ubuntu/Mint?

  • Mint 17.2/Ubuntu 14.04 use ICU 52.1. I want to release my app (map_creator) with ICU 54.1.

    I can build ICU 54.1 on my Mint 17.2 build machine, and link to it when I build with Qt Creator, with this in my .pri:

        INCLUDEPATH += $${PWD}/third_party/icu/source/common 
        LIBS += -L$${PWD}/third_party/build/icu/$${BUILD_MODE}/lib 
    unix:LIBS += -licudata -licui18n -licuuc

    I can build my app on Mint 17.2 with Qt Creator, works fine. I can verify it is linking ICU 54 with:

    nm map_creator | c++filt | grep icu

    However, if I mouse over my code that uses ICU, the tooltip indicates it's pointing to the system ICU. And more importantly, my build script calls debuild, and when debuild builds my app, it links to the system ICU, which I can verify by comparing the Makefiles as well as running the nm command as above on the executable (after I extract if from the .deb).

    So, I'm confused! Why does it link correctly in Qt Creator, and how do I make it work correctly with debuild?

    In my rules file in override_dh_auto_configure, I call qmake with these parameters, which are the same as what Qt Creator does: -r -spec linux-g++-64

Log in to reply