2010-07-02 19 views
2

的如果有两个源文件AC和BC: AC包括巧舌如簧-2.6.6 和 BC的glib.h包括油嘴2.12包括不同版本的巧舌如簧头

glib.h然后我编译它们并将它们链接在一起并生成目标程序。假设a.c没有使用v2.6以后版本中引入的任何新功能,将会包含不同版本的标头会导致任何问题?如果是这样,那么这种问题何时会发生?

+0

你怎么知道它是包括头部的哪个版本?通常它只会在编译期间指定的的包含路径中查找。 – 2010-07-02 18:41:57

+0

嗨SB,我使用的Makefile可以指定GLiB的根目录,并在代码中使用#include“glib.h”。我安装了多个版本的glib头文件。 – Simon 2010-07-06 18:41:16

回答

0

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

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

我使用的是可以指定 巧舌如簧的根目录下的Makefile文件,并在代码中使用 #include "glib.h"。我安装了多个版本的glib头文件 。

为什么地球上你想这么做?

0

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

enter image description here

...

enter image description here