2

ac と bc の 2 つのソース ファイルがある場合: ac は glib-2.6.6 の glib.h をインクルードし、bc は glib-2.12 の glib.h をインクルードします。

次に、それらをコンパイルしてリンクし、ターゲット プログラムを生成します。ac が v2.6 以降に導入された新しい機能を使用していないと仮定すると、異なるバージョンのヘッダーを含めると問題が発生しますか? もしそうなら、そのような問題はいつ起こりますか?

4

2 に答える 2

0

Glib のバージョンについては、この比較表を参照してください。2.6.6 と 2.12.0 のバージョンの間にいくつかの重大度の低い API/ABI の変更が行われました。

ここに画像の説明を入力

...

ここに画像の説明を入力

于 2011-08-31T11:15:05.633 に答える
0

問題が発生することはありません。これは、GLib が 2.x シリーズのすべてのバージョンに対して API の互換性を維持しているためです。プログラムのコンパイルに使用するヘッダーのバージョンに関係なく、そのバージョンのライブラリに存在しない機能を使用しない限り、どのバージョンのライブラリにもリンクできます。

しかし、あなたはあなたの人生を不必要に困難にしているようです:

GLiB のルートディレクトリを指定できる Makefile を #include "glib.h"コードで使用しています。複数のバージョンの glib ヘッダーがインストールされています。

どうしてそんなことをしたいのですか??

于 2010-07-08T15:34:10.593 に答える