2017-07-13 7 views
0

私のC++プロジェクトは、巨大なプロジェクトに依存しています。私のプロジェクトは、巨大なプロジェクトの多くのDLLを使用しています。巨大なプロジェクトをインストールするのに数時間かかるので、誰かのために巨大なプロジェクトをインストールする必要性を取り除きたい。C++は、別のプロジェクトからdllに必要なヘッダファイルをコピーします。

私はリサーチの後、dllを使ってコンパイルしてリンクするには2つの方法があると理解しています.1)libとヘッダーを使用する。 2)loadlibaryメソッドの使用。

loadlibraryメソッドでは、読み込むメソッドを正確に知る必要があります。私はこれを知らないので、私はオプション1に行った。私が間違っていれば私を修正してください。

現在、大きなプロジェクトのパスをコンパイラの追加の依存関係設定オプションに含めました。私はチームに含まれているヘッダーを共有したい。大きなプロジェクトは、私の依存関係のDLLで使われていないヘッダがたくさんあります。私はすべてのヘッダーをコピーしようとしましたが、一部の.cppはヘッダーなしで直接使用されています。

巨大なプロジェクトから必要なヘッダーファイルだけをコピーする方法はありますか?おそらく手動での作業が少なくて済みます。現在、ヘッダーとcppは約1GBで、githubで共有することはできません。とにかく、すべての依存関係定義をファイルに自動的に生成して使用することができますか?このような状況を処理する標準的な方法を教えてください。

+0

同じコンパイラ&同じプラットフォームを使用してコンパイルする必要があり、あなたの構築しないようにしてくださいシステム/コンパイラはヘッダを自動的に追跡しますか? CMakeを使用している場合は、これを追跡する必要があります。 makefileでは、 'gcc -E'を使ってインクルードされたヘッダをリストすることができます。 –

答えて

0

ライブラリ(dll)を動的にビルドしてリンクすることができます。

  • はコンパイラ-I引数で.hファイルを含むフォルダが含まれるように

    はこれを行うには、次のものが必要-IC:\path\

  • リンカ-L引数を指定して、DLLを含むフォルダへのリンク-LC:\path\

libに

関連する問題