c++ - 如何为 linux 机器创建 Qt 可执行文件

标签 c++ qt qt4 qt-creator qt5

我已经使用 Qt 5.3 创建了一个项目。我希望这个项目可以在其他 linux 机器上执行,所以我将在项目的 build 文件夹中生成的可执行文件在其他 linux 机器上执行。当我这样做时,出现以下错误:

./Project_name: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory

我使用 QT 5.3 开发了应用程序,但我尝试执行它的 linux 机器有 libqt4 库。有什么方法可以只使用 libqt4 库来执行此文件。以下是我的项目的 .pro 文件:

#-------------------------------------------------
#
# Project created by QtCreator 2014-12-08T09:19:31
#
#-------------------------------------------------

QT       += core gui


greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Project_name
TEMPLATE = app
QMAKE_CXXFLAGS += -std=c++11

SOURCES += main.cpp\
        mainwindow.cpp \


INCLUDEPATH += /usr/include/python2.7/ 





HEADERS  += mainwindow.h 





FORMS    += mainwindow.ui 

我在网上查了一下,发现我们需要在“greaterThan(QT_MAJOR_VERSION, 4): QT += widgets”中进行更改,以便它适用于 qt4 库。我这样做了,但没有用。那么你能否让我知道可以做什么,以便使用 libqt5 构建的项目也可以在具有 libqt4 的机器上执行。可以安装 libqt5 库,但我正在寻找其他方法。

最佳答案

Is there any way for this file to be executable using the libqt4 libraries only

至少不容易...即使您创建了符号链接(symbolic link),Qt 4 和 Qt 5 也不是二进制兼容的。

如果你想让它独立:

  • 静态捆绑库。

  • 使用动态符号加载并根据您找到的版本,您可能需要对代码进行编程以使其行为不同。但这可能需要大量工作。

关于c++ - 如何为 linux 机器创建 Qt 可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27551083/

相关文章:

c++ - QWidget::repaint:更新进度条时检测到递归重绘

c++ - 带有新 SIGNAL 的 QEditLine 的子类

qt - QDockWidget 关闭按钮和 float 按钮的工具提示?

c++ - 读取和写入进程 I/O?

c++ - 对类型 'int' 的非常量左值引用无法绑定(bind)到类型 'int' 的临时对象

qt - 在 Qt 中获取运行时架构信息

c++ - 从代码添加时qt按钮无法点击

c++ - QList拷贝构造函数:how to new a QList<QStandardItem *> with variable

c++ - 将 void* 与 uint16_t 进行比较

c++ - 链表 |重载 + 运算符 | C++