我已经使用 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/