gpt4 book ai didi

linux - Glibc - 使用 Qt Creator 静态构建或强制程序使用正确的版本

转载 作者:太空宇宙 更新时间:2023-11-04 12:51:55 25 4
gpt4 key购买 nike

我有以下问题:

使用 Qt Creator,我制作了一个需要 Glibc_2.14 才能运行的 Qt 应用程序。我现在需要在只提供 Glibc_2.11.3 的机器上运行这个应用程序。我没有机器的 root 权限,所以我无法更新库。

如果我尝试运行应用程序,我自然会收到以下错误消息:/lib/libc.so.6: version 'GLIBC_2.14' not found (required by ./obsluha)

我正在考虑将 Qt 应用程序与 Glibc 静态链接,但我如何在 Qt Creator 中执行此操作?请注意,我只需要与 Glibc 静态链接,而不是 Qt 本身。

另一种可能的方法是简单地将我的 libc.so.6 工作副本复制到机器上并以某种方式强制应用程序使用该版本(我知道这不是一个好主意) .这复制到我的主目录,并且我的主目录导出到 LD_LIBRARY_PATH 当然会与其他 libc 版本发生冲突。

欢迎任何反馈,无论是我提出的两种方法之一的解决方案,还是完全不同的方法。

最佳答案

I was thinking of linking the Qt application with Glibc statically

不要这样做:与流行的看法相反,完全静态的二进制文件不太可移植when using GLIBC , 不多。当您完全静态地链接二进制文件时,您可能会在链接时收到警告:warning: Using 'getpwent' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking。当您忽略该警告时,您的二进制文件也极有可能崩溃。

but how do I do this in Qt creator?

抱歉,我不知道这个问题的答案。但这没有实际意义。

Note that I only need to link statically with Glibc, and not Qt itself.

不可能静态链接 GLIBC,同时动态链接其他库。使用动态库意味着您正在使用动态加载器,并且意味着您正在针对 GLIBC 进行动态链接。

那你能做什么?列出了一些可能的解决方案 here .

关于linux - Glibc - 使用 Qt Creator 静态构建或强制程序使用正确的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36925964/

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