gpt4 book ai didi

c++ - 无法在另一个 Linux 系统上运行可执行二进制文件?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:26:01 25 4
gpt4 key购买 nike

我使用的是 Ubuntu 10.04 和 Qt4.6,我已经通过 QtCreator 在我自己的计算机上创建了一个可执行二进制文件。

现在我想把我的可执行文件放到CentOS 5上,但是这个可执行文件好像不能在CentOS上运行。

错误信息是

bash: ./[filename]: cannot execute binary file

现在我知道这是来自 32 位和 64 位的问题,并成功创建了 32 位的可执行文件。

但是由于动态链接的问题,这个可执行文件在CentOS上还是不能运行,一直显示:

Error while loading shared libraries: libQtGUI.so.4: cannot open shared object file: No such file or directory

我试图在 .pro 文件上添加“-static”标志

QMAKE_CFLAGS_RELEASE    += -Os -static
QMAKE_CPPFLAGS_RELEASE += -Os -static
QMAKE_CXXFLAGS_RELEASE += -Os -static
QMAKE_CCFLAGS_RELEASE += -Os -static

但是,看起来它只生成“静态二进制”而不是“静态链接”,依赖关系仍然存在。

我还尝试在 .pro 文件中添加以下行:

QMAKE_LFLAGS += static

但是这个项目在这样做之后无法编译。我没有权限在Cent OS上安装Qt,如何用静态链接编译这个项目,让可执行文件独立运行?

感谢您的帮助!

最佳答案

检查 64 位与 32 位 - file(1)是你的 friend 。然后使用 ldd(1) 检查缺少哪些库.

编辑:

看看这个 SO 问题 Qt static linking and deployment .

关于c++ - 无法在另一个 Linux 系统上运行可执行二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2901590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com