Java Qt-Jambi版本兼容性

Java Qt-Jambi版本兼容性,java,qt,version,qt-jambi,Java,Qt,Version,Qt Jambi,我打算使用Qt-Jambi用Java编写Qt-gui 我在Linux操作系统上安装了最新的Qt库,目前版本为4.7.4。但是,Qt Jambi仅在下载页面上以4.7.0版的形式提供 现在,当我运行Qt应用程序时,出现以下错误: Cannot mix incompatible Qt library (version 0x40704) with this library (version 0x40700) 因此,似乎没有最新版本的Qt-Jambi。这是否因为它不再得到官方支持 作为一个解决方案,可

我打算使用Qt-Jambi用Java编写Qt-gui

我在Linux操作系统上安装了最新的Qt库,目前版本为4.7.4。但是,Qt Jambi仅在下载页面上以4.7.0版的形式提供

现在,当我运行Qt应用程序时,出现以下错误:

Cannot mix incompatible Qt library (version 0x40704) with this library (version 0x40700)
因此,似乎没有最新版本的Qt-Jambi。这是否因为它不再得到官方支持

作为一个解决方案,可以从源代码构建它,但我想知道它是否与安装的Qt版本兼容


现在,尽管有错误消息,我是否可以以某种方式混合这些版本?如果没有,您如何获得匹配的版本号?据我所知,Jambi仅作为二进制软件包在Ubuntu上可用,在其他Linux平台上必须与应用程序jar一起部署(作为固定版本)。

作为社区驱动的分支,Qt Jambi在开发中略落后于官方的Qt

Qt-Jambi应该预先打包了正确的Qt库,但是您的应用程序似乎引用了系统上已经安装的最新Qt库。您不能混合使用不同的版本,因此需要引用相同版本的Qt二进制文件


如果未在生成环境中显式引用新的Qt库,则应修改
LD_LIBRARY_PATH
环境变量,以包含具有正确库的路径

您可以尝试的一件事是提取本机jar并使用chrpath从这些lib中删除rpath和运行路径,然后使用LD_LIBRARY_PATH在所有lib所在的目录下运行。那些旧版本的IIRC仍然与设置了rpath的libs捆绑在一起,因此如果存在系统Qt,它们就不能正常工作。顺便说一句,您有哪个发行版?我认为它不是Ubuntu,因为Ubuntu软件包是不可行的?你是对的,如果我从本机库中删除rpath,并使用LD_LIBRARY_PATH设置运行应用程序,它就会工作。但是,使用-Djava.library.path会导致相同的错误消息。“旧版本”是指遵循Qt-Jambi版本不会有这个问题吗?唯一可用的版本是Linux的4.7.0,也许Ubuntu软件包比较新。为了回答你的问题,我正在使用ArchLinux。对不起,到目前为止还没有新的版本,我们正在努力在接下来的几个月里做一些。你能详细说明一下吗?我在qtjambi-linux64-gcc.4.7.0.jar中的所有本机库上使用了chrpath-d,但它并没有解决问题。问题是我可以运行一些qt示例,但例如media player不工作。或者使用-Djava.library.path,这可能更适合Java应用程序。但这些并不完全是解决问题的办法,只是解决问题的一种方法。jar被提取到/tmp,但是有什么东西阻止了正确使用它们,我猜是rpath thingys。