【问题标题】:How can I link glibc statically with qt如何将 glibc 与 qt 静态链接
【发布时间】:2010-03-19 00:41:44
【问题描述】:

我已经构建了一个静态版本的qt,并下载了一个静态版本的glibc。现在我想将 glibc 静态链接到我的 qt 应用程序。我知道进入 .pro 并添加行 LIBS += -L path/to/static_lib 但我想知道这些是否足够?即使我正在构建的操作系统也有动态库,它仍然会静态链接 glibc 吗?我这样做的原因是以独立方式部署应用程序。 (安装和更新 Red Hat 5.3 后在目标计算机上找不到 glibc_2.9)

【问题讨论】:

    标签: linux qt static-libraries glibc


    【解决方案1】:

    -static 传递给 gcc 将强制它在可能的情况下进行静态链接。

    或者,下载并安装 CentOS 5 并在此基础上进行构建。

    【讨论】:

    • 所以在 Cent OS 上构建将使二进制文件与更多发行版兼容?
    • CentOS 与 RHEL 二进制兼容。
    • 谢谢 我不知道这个。我想更好的是直接从 RHEL 构建,我有一个在办公室运行。另外,我听说静态链接 libc 不是一项简单的任务,这意味着静态链接所有内容并且存在一些运行时影响。在静态链接 libc 后,我从 make 收到了一些警告,当我在 RHEL 上运行它时,我遇到了分段错误
    • trilithium.com/johan/2005/06/static-libstdc 的引用说:“问题不在于静态链接 libstdc++——毕竟它只是一个库——而是 C++ 代码通常需要运行时支持,以启用诸如RTTI 和异常处理。”
    • ps:只要我的投票冷却时间结束,我就会投票给你:P
    【解决方案2】:

    正如您所发现的,与 glibc 完全静态链接是不可能的,因为例如 nss 支持是动态加载的。 但是,所需的 glibc 版本主要取决于您实际使用的功能。

    无论如何,我认为你应该改用Linux Standard Base,也 因为原因暴露了here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-09
      • 2013-01-12
      • 2018-03-30
      • 2010-10-01
      • 1970-01-01
      • 2014-12-09
      • 2013-04-17
      相关资源
      最近更新 更多