的如果有两个源文件AC和BC: AC包括巧舌如簧-2.6.6 和 BC的glib.h包括油嘴2.12包括不同版本的巧舌如簧头
glib.h然后我编译它们并将它们链接在一起并生成目标程序。假设a.c没有使用v2.6以后版本中引入的任何新功能,将会包含不同版本的标头会导致任何问题?如果是这样,那么这种问题何时会发生?
的如果有两个源文件AC和BC: AC包括巧舌如簧-2.6.6 和 BC的glib.h包括油嘴2.12包括不同版本的巧舌如簧头
glib.h然后我编译它们并将它们链接在一起并生成目标程序。假设a.c没有使用v2.6以后版本中引入的任何新功能,将会包含不同版本的标头会导致任何问题?如果是这样,那么这种问题何时会发生?
它不应该引起问题。这是因为GLib为2.x系列中的所有版本保持了API兼容性。无论您使用哪种版本的头文件来编译程序,只要您没有使用该版本库中不存在的任何功能,就可以链接到任何版本的库。
但是,你似乎是让您的生活困难不必要的:
我使用的是可以指定 巧舌如簧的根目录下的Makefile文件,并在代码中使用
#include "glib.h"
。我安装了多个版本的glib头文件 。
为什么地球上你想这么做?
你怎么知道它是包括头部的哪个版本?通常它只会在编译期间指定的的包含路径中查找。 –
2010-07-02 18:41:57
嗨SB,我使用的Makefile可以指定GLiB的根目录,并在代码中使用#include“glib.h”。我安装了多个版本的glib头文件。 – Simon 2010-07-06 18:41:16