在Ubuntu 10.04 Lucid Lynx中运行Qt4.7应用程序

在Ubuntu 10.04 Lucid Lynx中运行Qt4.7应用程序,qt,ubuntu,qt4,ubuntu-10.04,Qt,Ubuntu,Qt4,Ubuntu 10.04,我正在开发一个跨平台的应用程序,并且正在使用最新的Qt库,版本4.7。问题是,其中一个用户试图在Ubuntu10.04 Lucid Lynx上运行它,结果它崩溃了,出现了未定义的符号:\u ZN9QListData11detach\u growerpi。Ubuntu 10.04有Qt4.6.3,这似乎就是问题所在 然而,看起来Ubuntu10.04不支持4.7,只有Ubuntu10.10支持,用户不想升级他的linux发行版,因为他是长期支持的。在这种情况下,我有什么选择?用户可以下载4.7框架

我正在开发一个跨平台的应用程序,并且正在使用最新的Qt库,版本4.7。问题是,其中一个用户试图在Ubuntu10.04 Lucid Lynx上运行它,结果它崩溃了,出现了
未定义的符号:\u ZN9QListData11detach\u growerpi
。Ubuntu 10.04有Qt4.6.3,这似乎就是问题所在


然而,看起来Ubuntu10.04不支持4.7,只有Ubuntu10.10支持,用户不想升级他的linux发行版,因为他是长期支持的。在这种情况下,我有什么选择?用户可以下载4.7框架并在PC上编译,但这意味着每个ubuntu 10.04用户都必须这样做。或者,我可以使用Qt4.6进行额外构建,但我找不到这些较旧的库

有什么建议吗?是否有任何编译标志使其与4.6兼容?这可能是一只虫子吗

谢谢

编辑:我最后把我的Qt.so文件发给了他,结果成功了。然而,这里每个人的回答都是正确和恰当的——我希望我能全部接受。

参见最后一篇文章

您需要将其添加到存储库源:

deb http://ppa.launchpad.net/kubuntu-ppa/backports/ubuntu lucid main

相反,他需要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
构建lucid版本(根据需要添加更多qt包)


另外,您在错误的站点上,这更像是unix.*或超级用户。

您还可以根据Qt库静态构建应用程序。看见
因此,无需在目标机器上安装Qt SDK,您就可以在任何地方发布应用程序(Ubuntu 9./10)。

除了静态链接Qt外,您还可以简单地将Qt DLL/So文件与可执行文件一起发布。Qt部署页面上的说明很清楚

我不知道为什么,但您的所有操作都完全是反向的:我有Qt4.7,他有Ubuntu10.04和Qt4.6.3。如果你搜索错误,这里有一个结果表明获得Qt4.7用户可以下载4.7框架并在他的电脑上编译,但这意味着每个ubuntu 10.04用户都必须这样做。或者,我可以使用Qt4.6进行额外构建,但我找不到这些旧库。哦,对不起,我误解了你的意思。我认为“他”指的是用户,而不是我。问题是我不在Ubuntu上,我在CentOS(工作中的服务器)上,这是另一回事。通过添加包含较新libs的新源repo,一个小的apt-get-update&&apt-get-dist升级将Qt更新到较新版本。(正如我提到的,你需要向下滚动到我链接到的帖子中的最新答案)但正如chx指出的,这可能更像是一个超级用户问题……谢谢Xavier的解释!用户没有设法获得后端口,因为它只要求“签名的东西”。最后我把我的档案寄给了他。谢谢此命令使用“signed stuff”的键正确添加存储库:
sudo apt add repository ppa:kubuntu ppa/backports
不仅要添加Qt.so文件,还要添加平台/编译器特定的库(例如libc.so等)-这并不方便。这就是我最后所做的,并且它工作正常!它可能不会像Johnny所说的那样适用于所有情况,但对于这种情况,我很幸运所有其他依赖项都匹配到了我们的机器上。如果您在Ubuntu 10.04上的./configure有问题,请确保您首先安装了'libxext dev'pkg。然后它应该很容易航行…不幸的是,我在LGPL许可下使用Qt,所以我不能静态链接到Qt。