Linux 如何使用指定版本依赖项编译Qt应用程序

Linux 如何使用指定版本依赖项编译Qt应用程序,linux,qt,deployment,dependencies,Linux,Qt,Deployment,Dependencies,我不知道如何正确地描述它,但我有一个问题 我需要编译我的Qt应用程序,使其完全依赖于特定的Qt版本。当前,当我在linux上编译我的应用程序并尝试 ldd Application 我得到以下结果 ... libQtCore.so.4 => /usr/local/Trolltech/... ... 我想实现的是: libQtCore.so.4.8.2 => /usr/local/Trolltech/... 此要求的原因是部署我的应用程序。我想将我的应用程序与默认Qt库一起分发到一

我不知道如何正确地描述它,但我有一个问题

我需要编译我的Qt应用程序,使其完全依赖于特定的Qt版本。当前,当我在linux上编译我的应用程序并尝试

ldd Application
我得到以下结果

...
libQtCore.so.4 => /usr/local/Trolltech/...
...
我想实现的是:

libQtCore.so.4.8.2 => /usr/local/Trolltech/...
此要求的原因是部署我的应用程序。我想将我的应用程序与默认Qt库一起分发到一个目录中。我已经将rpath更新到APP/libs目录,一切正常,直到我尝试将我的应用程序分发到使用较新版本的Qt的系统

在这种情况下,我会遇到以下错误:

Cannot mix incompatible Qt library .....

你如何编译你的应用程序?您可以在编译时将自定义库路径传递给gcc编译器-LYou通过将-static选项传递给gcc或链接器来实现这一点。您还可以使用LIBRARY_PATHI,因为我已经在使用qmake宏qmake_LIBDIR将-L参数传递给链接器。但我没有找到一种方法来指定确切的文件(例如libQtCore.so.4.8.2),那么在运行时使用LD_LIBRARY_PATH呢?不知道为什么,但LD_LIBRARY_PATH不起作用。虽然我已经正确地设置了一个目录的路径,在这个目录中我有所有必需的文件,但我的应用程序仍然会因库mash错误而崩溃。