我正在开发跨平台应用程序,并且正在使用最新的Qt库4.7版。问题是,其中一个用户试图在Ubuntu 10.04 Lucid Lynx上运行它,并且它与undefined symbol: _ZN9QListData11detach_growEPii
崩溃了。 Ubuntu 10.04有Qt4.6.3,似乎是问题所在。
然而,似乎Ubuntu 10.04不支持4.7-仅Ubuntu 10.10,并且用户不希望升级他的Linux发行版,因为他是长期支持。在这种情况下我有什么选择?用户可以下载4.7框架并在他的PC上编译,但这意味着每个ubuntu 10.04用户都必须这样做。或者,我可以使用Qt 4.6进行额外的构建,但我找不到这些较旧的库。
有什么建议吗?是否有任何编译标志可以使它与4.6兼容?这可能是个错误吗?
谢谢!
编辑:我最终向他发送了我的Qt .so文件,并且它有效。但是,每个人的回答都是正确和恰当的 - 我希望我能接受所有这些。答案 0 :(得分:5)
查看上一篇文章 http://ubuntuforums.org/showthread.php?t=1552263
您需要将其添加到存储库来源:
deb http://ppa.launchpad.net/kubuntu-ppa/backports/ubuntu lucid main
答案 1 :(得分:3)
除了静态链接到Qt之外,您还可以简单地将Qt DLL / so文件与可执行文件一起分发。 Qt部署页面上的说明清晰http://doc.qt.io/archives/qt-4.7/deployment-x11.html
答案 2 :(得分:1)
相反,他需要QT 4.6.3。我认为他在10.10但需要从10.04开始的Qt。这需要
deb-src http://archive.ubuntu.com/ubuntu lucid main restricted universe multiverse
现在你可以
sudo apt-get build-dep libqt4-core libqt4-dev
sudo apt-get -b source -t lucid libqt4-core libqt4-dev
构建清晰版本(根据需要添加更多qt包)。
聚苯乙烯。你在错误的网站上,这更像是unix。*或超级用户。
答案 3 :(得分:1)
此外,您可以静态地针对Qt库构建您的应用程序。见http://doc.qt.io/archives/qt-4.7/deployment-x11.html#static-linking 因此,您可以在任何地方(Ubuntu 9. / 10。)分发您的应用,而无需在目标计算机上安装Qt SDK。