Running Qt 4.7 application in Ubuntu 10.04 Lucid Lynx

12,118

Solution 1

Aside from linking statically against Qt, you can also simply distribute your Qt DLLs/so files along with your executable. The instruction on Qt deployment page is clear http://doc.qt.io/archives/qt-4.7/deployment-x11.html

Solution 2

To the contrary, he needs QT 4.6.3. I presume he is on 10.10 but needs the Qt from 10.04. This requires

deb-src http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse

now you can

sudo apt-get build-dep libqt4-core libqt4-dev
sudo apt-get -b source -t lucid libqt4-core libqt4-dev

build the lucid version (add more qt packages as needed).

Ps. you are on the wrong site, this is more like unix.* or superuser.

Solution 3

Also you can build your app statically against Qt libraries. See http://doc.qt.io/archives/qt-4.7/deployment-x11.html#static-linking So you'll be able to distribute your app anywhere (Ubuntu 9./10.) without installing Qt SDK on target machines.

Share:
12,118
Alexander Kondratskiy
Author by

Alexander Kondratskiy

Hi, my name is Alex and I am a software engineer in the downtown Toronto area. I am currently the CTO at UBet, developing a decentralized sports trading platform. My interests include C++, Haskell, computer vision/graphics, smart contracts.

Updated on June 30, 2022

Comments

  • Alexander Kondratskiy
    Alexander Kondratskiy almost 2 years

    I am working on a cross-platform application, and am using the latest Qt libraries, version 4.7. The problem is, one of the users tried to run it on Ubuntu 10.04 Lucid Lynx, and it crashed with undefined symbol: _ZN9QListData11detach_growEPii. Ubuntu 10.04 has Qt4.6.3 and it seems to be the problem.

    However, it seems Ubuntu 10.04 doesn't support 4.7- only Ubuntu 10.10 does, and the user does not want to upgrade his linux distribution as his is Long Term Support. What are my options in this case? The user could potentially download the 4.7 framework and compile that on his PC, but that would mean every ubuntu 10.04 user would have to do this. Alternatively, I could make extra builds using Qt 4.6, but I can't find these older libraries.

    Any suggestions? Are there any compile flags that would make it compatible with 4.6? Could this be a bug?

    Thanks!

    EDIT: I ended up sending him my Qt .so files, and it worked. However, everyone's answer here was correct and appropriate- I wish I could accept them all.