0

私のプロジェクトは、約 12 個のコンポーネントで構成されており、これらの各コンポーネントのソース コードは、メイン ソース コード ディレクトリの下の独自のサブディレクトリにあります。コンポーネントの多くは、他のコンポーネントのヘッダー ファイルを使用します。私は、これらのヘッダー ファイルがすべて 1 つのinclude/ディレクトリで利用できるように調整しようとしています。これが悪い考えである場合、またはあるコンポーネントのヘッダーを別のコンポーネントで簡単に利用できるようにするためのより良い方法がある場合は、今すぐ止めてください。

include/コンポーネントのビルド後にコンポーネントのヘッダーをコピーするのは簡単cp *.hpp ../includeです。makefile でうまく機能します。しかしmake clean、個々のコンポーネントで実行すると、他のコンポーネントを削除せずに、そのコンポーネントのヘッダーを削除したいと考えていますinclude/。私が知る限り、これは、次のように、makefile の「削除」コマンドでコンポーネントのヘッダー ファイルのリストを維持する必要があることを意味します。

clean:
    rm -fv ../include/header1.hpp ../include/header2.hpp ...

このリストの維持は手作業であり、自動化したいと考えています。同じヘッダーの新しいバージョンが所定の位置にコピーされる前に、コピーされたヘッダーに依存するコンポーネントがビルドされると問題が発生することが予想されるため、これを正しく行いたいと考えています。問題の診断には非常に時間がかかります。

別のディレクトリにあるヘッダーのリストをクリーンアップするメイクファイルを取得するにはどうすればよいですか? または、ヘッダー ファイルを同じプロジェクト内の他のコンポーネントで使用できるようにするためのより良い方法はありますか?

4

2 に答える 2

1

または、ヘッダー ファイルを同じプロジェクト内の他のコンポーネントで使用できるようにするためのより良い方法はありますか?

明白で簡単な方法が 2 つあります。

  1. include最初にすべてのヘッダーをディレクトリに保持します
  2. CPPFLAGSコンポーネントごとにセットアップして、依存関係を見つける場所を伝えます。

小規模で密結合のプロジェクトには、前者のアプローチをお勧めします。2 番目のアプローチは、プロジェクト内の内部依存関係について考える必要があるため、実際にコンポーネント化されたシステムに適しています。

于 2013-09-06T11:22:04.453 に答える