ac と bc の 2 つのソース ファイルがある場合: ac は glib-2.6.6 の glib.h をインクルードし、bc は glib-2.12 の glib.h をインクルードします。
次に、それらをコンパイルしてリンクし、ターゲット プログラムを生成します。ac が v2.6 以降に導入された新しい機能を使用していないと仮定すると、異なるバージョンのヘッダーを含めると問題が発生しますか? もしそうなら、そのような問題はいつ起こりますか?
ac と bc の 2 つのソース ファイルがある場合: ac は glib-2.6.6 の glib.h をインクルードし、bc は glib-2.12 の glib.h をインクルードします。
次に、それらをコンパイルしてリンクし、ターゲット プログラムを生成します。ac が v2.6 以降に導入された新しい機能を使用していないと仮定すると、異なるバージョンのヘッダーを含めると問題が発生しますか? もしそうなら、そのような問題はいつ起こりますか?
問題が発生することはありません。これは、GLib が 2.x シリーズのすべてのバージョンに対して API の互換性を維持しているためです。プログラムのコンパイルに使用するヘッダーのバージョンに関係なく、そのバージョンのライブラリに存在しない機能を使用しない限り、どのバージョンのライブラリにもリンクできます。
しかし、あなたはあなたの人生を不必要に困難にしているようです:
GLiB のルートディレクトリを指定できる Makefile を
#include "glib.h"
コードで使用しています。複数のバージョンの glib ヘッダーがインストールされています。
どうしてそんなことをしたいのですか??