0

Cryptoppライブラリを使用するプログラムを作成しました。静的ライブラリを作成し、ディストリビューションにインクルードしますが、プログラムには多くのヘッダーファイルも必要です。私の質問は、これらすべてのヘッダーファイルをディストリビューションに含める必要があるかどうかです。

たとえば、を使用するコードを作成しました。このコードはdes.h、長いチェーンmodes.hfilters.hあるCryptoppの他のヘッダーファイルに基づいています。Cryptoppライブラリのすべてのヘッダーファイルをインクルードしますか?

もっと一般的に言えば、他のライブラリ(Cryptoppやboostなど)を使用するコードを作成する場合、distroに含める必要があるものはすべてありますか?

更新:バイナリだけでなく、ソースを配布したい。必要に応じて、ユーザーが私のプログラムを最初からコンパイルできるようにします。静的ライブラリをインクルードしていますが、ヘッダーファイルについて混乱しています。それらすべてを含める必要がありますか?

4

2 に答える 2

3

いいえ、配布するのはバイナリファイルのみです。プログラムを実行するのにヘッダーは必要ありません。

ただし、(プログラムではなく)ライブラリを配布する場合は、ヘッダーを指定する必要があります。サードパーティのヘッダーではなく、ヘッダー。

サードパーティのヘッダーが実装の一部である場合は、それらをいくつかの手法で除外できます。そうでない場合は、それらも提供する必要があります。それが必要なく、内部でのみ使用すると仮定すると、前方宣言を使用できます。

//MyClass.h
class ExternalClass;
class MyClass
{
   ExternalClass* p;
} ;

このように、実装ファイルにサードパーティのヘッダーを含めるだけで済みますが、とにかく配布する必要はありません。

于 2012-03-11T20:09:43.860 に答える
0

一般に、ライブラリをまったく配布しないか、ライブラリ全体をそのまま配布するという2つのことのいずれかを実行します。

バイナリ実行可能ファイルのみを配布する場合は、最初の方法が理にかなっています。ソースコードを配布している場合は、どちらでもかまいません。2つの中間で実行し、コードが依存するライブラリの一部を配布しようとすることは、問題のレシピです。

于 2012-03-11T20:16:37.297 に答える