4

私は現在、時間の経過とともに有用であると証明されたものから再利用可能なコードの小さなライブラリを作成しています.ライブラリは通常どのように展開されているのでしょうか? .dll と .lib で十分だという印象を受けましたが、クラスと関数を参照するにはどうすればよいでしょうか。ライブラリに多くの .h ファイルも付属するのは一般的ですか、それともより洗練されたソリューションがありますか?

ライブラリを使用する実際のアプリケーションのデプロイはどうですか? 静的にリンクしたら、.dll ファイルも送信する必要がありますか? または、ライブラリのコンテンツがプログラムにコピーされますか?

4

2 に答える 2

6

経験則として、API と呼ばれるヘッダーのグループに、エンド ユーザーに公開するすべてのパブリック メソッドを集めます。この時点で、内部ヘッダーと API ヘッダーを区別する必要があります。ヘッダー ファイル番号 (API ヘッダー) が減少し、ファイル構造の管理がはるかに簡単になることがわかります。

于 2013-03-21T10:57:21.533 に答える
5

ライブラリを提供する場合、次の 3 つの重要なコンポーネントがあります。

  • ライブラリ自体のいくつかのバージョン: .soUnix.dllおよび.libWindows では、デバッグ用のバージョン、最適化されたバージョン、場合によってはマルチスレッドおよびシングル スレッド、場合によってはプロファイリングがアクティブ化されたバージョン...および静的リンクのサポート ( .aUnix では.libWindows では、ただしサポートされていません) DLL をリンクする必要があるのと同じもの)、

  • 外部インターフェースを定義するヘッダー、および

  • ライブラリのインストール方法とリンク方法、各バージョンに必要なコンパイラ オプションなどを説明するドキュメント、およびライブラリ自体のドキュメント (すべての関数の事前条件と事後条件など)

それ以下の場合、クライアントはそれを使用できなくなります。

展開に関しても、これは文書化する必要があります。クライアントがライブラリを静的にリンクする場合は、何も必要ありません。動的にリンクする場合は、.so/.dllファイルもデプロイする必要があります。

于 2013-03-21T11:10:33.777 に答える