Linux Qt UI 界面在本地一次编译后,可在任何发行版上运行。

这篇文章是由https://blog.csdn.net/herehear/article/details/101448176衍生出来的。

主旨是C/C++版的一次编译,到处运行。

有了前面的基础后,现在可以着手把Qt开发的界面也做到一次编译,到处运行。

这篇文章本质上是没有新技术难点的,主要是解决一些Qt运行时的一些问题。

在前一篇文章的样例中,编译libsimple.so时,指定了其rpath选项 使其在运行过程中能够根据不同环境找到libsimple.so的依赖库。

但是现在存在两个问题

  1. Qt库有相当一部分没有使用rpath选项,这就使得我们必须重编源码或者自定LD_LIBRARY_PATH选项。重编源码无疑是费时费力的,但是LD_LIBRARY_PATH又是有副作用的(比如此环境变量会遗传给所有后代子进程)。
  2. UI可执行程序在运行过程中会去寻找一个叫X/plugins/platform的文件夹,所以必须连同此文件夹一起放进安装包中,并且指定此文件夹的路径:

export QT_PLUGIN_PATH=X/plugins/platform。

在Qt论坛上有一个提问者

使用LD_LIBRARY_PATH和QT_PLUGIN_PATH两个环境变量解决这两个问题并提供了完整的解决过程

 

本文完。

如有问题,请发送邮件至707676926@qq.com。


版权声明:本文为herehear原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。