linux - 创建针对不同 Linux 发行版的 Qt 应用程序

标签 linux qt

我的任务是让我们的 Qt 应用程序(目前在 Windows 和 Mac 上运行)在 Centos 5 和 6 上运行。完成这项工作的最佳方法是什么?我一直试图让它在 Centos 5 上构建,但 Qt 不是最新的。所以我想使用 Centos 6,但是我可以使用 Qt v4.8 及其版本的 Qt Creator 构建一个可以同时在 5 和 6 上运行的二进制文件吗?当然,如果同样的二进制文件也可以在其他发行版(如 Ubuntu)上运行,那将是理想的。

最佳答案

我遇到了同样的问题,以下是我的想法:

  • 静态链接到 Qt 库。首先,只有当您的应用程序是开源的或者您拥有 Qt 的商业许可时才可行——否则您将遇到 LGPL 链接异常。为了拥有要链接的静态库,您必须自己构建 Qt 并将其配置为生成静态库。当然,您在最低分母(即 CentOS 5)上构建 Qt,并祈祷它能在 CentOS 6 上运行(它会的)。
  • 动态链接到您提供的 Qt 库。您必须确保应用程序采用您提供的库,所以不要忘记将应用程序的库搜索路径设置为从您的库所在的目录开始。同样,您将必须构建 Qt 库您自己(在 CentOS 5 上)并将它们与您的应用程序一起分发。

关于linux - 创建针对不同 Linux 发行版的 Qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10484929/

相关文章:

c++ - 禁用 QTreeWidgetItem 的列或删除设置的 CheckBox

linux - 当 TEMPLATE=lib 时,如何强制 qmake 不创建指向目标的符号链接(symbolic link)?

linux - 通过类似守护进程的 bash 运行程序

linux - 如何制作备份虚拟机

Linux OSI 相当于 Winsock2 的 LSP

python - 为什么 python 脚本抛出 AttributeError : 'module' object not found, 但在可执行文件时有效?

c++ - 为什么我们在这里需要一个 "friend"? (C++)

linux - 解析 ASCII 十六进制转储以正确转换为二进制

c++ - 如何在 C++ 程序中使用 ftd2xx.lib?

c++ - Dlib r_squared C2059 错误