【问题标题】:including different versions of glib headers包括不同版本的 glib 头文件
【发布时间】:2010-07-02 18:30:20
【问题描述】:

如果有两个源文件 a.c 和 b.c: a.c 包含 glib-2.6.6 的 glib.h 和 b.c 包括 glib-2.12 的 glib.h

然后我编译它们并将它们链接在一起并生成目标程序。假设 a.c 没有使用 v2.6 之后引入的任何新功能,包含不同版本的 headers 会导致任何问题吗?如果有,什么时候会出现这样的问题?

【问题讨论】:

  • 你怎么知道它包含哪个版本的标题?通常它只会在编译期间指定的 的包含路径中查找。
  • 嗨 SB,我使用的 Makefile 可以指定 GLiB 的根目录并在代码中使用 #include "glib.h"。我安装了多个版本的 glib 头文件。

标签: dependencies header-files glib binary-compatibility


【解决方案1】:

这应该不会造成问题。这是因为 GLib 为 2.x 系列中的所有版本保持 API 兼容性。无论您使用什么版本的头文件来编译程序,您都可以链接到任何版本的库,只要您不使用该版本库中不存在的任何功能。

但是,你似乎让你的生活变得不必要的困难:

我正在使用可以指定的 Makefile GLiB 的根目录并使用 #include "glib.h" 在代码中。我有多个版本的 glib 标头 已安装。

你到底为什么要这么做??

【讨论】:

    【解决方案2】:

    请参阅comparison table 了解 Glib 版本。在 2.6.6 和 2.12.0 版本之间进行了一些低严重性 API/ABI 更改。

    ...

    【讨论】:

      猜你喜欢
      • 2012-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-16
      相关资源
      最近更新 更多