一般的な仮説上の問題を詳しく説明します。
問題:
静的ライブラリ saylibX.a
とヘッダー ファイルa.h
とb.h
. ヘッダー ファイルa.h
にb.h
は、ライブラリによってエクスポートされた API が含まれています。をa.h
含みます。ただし、ライブラリによって非公開で使用されるデータ構造が含まれており、所有者がこれらのデータ構造を公開したくないため、ライブラリの所有者によって出荷されません。a1.h
b.h
b1.h
a1.h
b1.h
a1.h
b1.h
ライブラリによってエクスポートされた API を呼び出すアプリケーションを作成する必要があります。そのため、API の宣言を含むa.h
andを含める必要があります。b.h
いいよ。アプリケーションを作成し、ヘッダー ファイルa.h
をインクルードしb.h
、API を呼び出します。しかし、コンパイラはandによって内部的に含まれているa1.h
andを見つけることができないため、コンパイラ エラーが発生します。b1.h
a.h
b.h
質問:
この問題の解決策はありますか? はいの場合、真剣に解決策を知りたい:)
ライブラリの所有者は、自分のライブラリで内部的に使用しているすべてのプライベート ヘッダー ファイルを公開する必要がありますか?