1

科学プロジェクト用に、一種の統計テスト (モジュール B) を使用するテンプレート化された分析ツール (モジュール A) があります。分析ツール (モジュール A) は、2 種類の問題 (モジュール C および D) で使用されます。モジュール C と D は、異なるファイル タイプからシリアル化するための関数を定義します。

すべてのモジュール (A、B、C、および D) は、共通のユーティリティ (モジュール E) を使用します。各モジュールは複数のファイルで構成されています。それぞれが独自の名前空間を持ち、ソース ファイルが異なるディレクトリにあるようにモジュールを編成したいと考えています (つまり、編成のモジュール性を強調します)。

各ファイルで名前空間を定義するのは簡単です。しかし、私は、モジュールごとに #include するファイルが、独自の名前空間内に他のすべてのファイルを含む、ある種のソース ツリーを使用したいと考えていました。

これを整理する良い方法が本当にわかりません。モジュールごとに 1 つのフォルダーを使用し、相対パスを使用して #include する必要がありますか? 各モジュールには独自の git リポジトリがあり、指定された UNIX フォルダーに存在する単一のライブラリ ファイルにコンパイルする必要があります (これには、プロジェクトを実行するための実際のインストールが必要です)。

現在、gcc-4.7、make、および emacs を使用しています。

モジュール性を引き出すためにこれらのファイルを整理する方法を知っていますか?

この質問により適した他の StackOverflow アフィリエイトがあれば教えてください。私のプロジェクトは実行されますが、必要以上に混乱しています!

4

1 に答える 1

1

しかし、私は、モジュールごとに #include するファイルが、独自の名前空間内に他のすべてのファイルを含む、ある種のソース ツリーを使用したいと考えていました。

これは間違ったアプローチです。A がモジュール レベルで E に依存している場合でも、必ずしも A 内のすべてのコンポーネントが E 内のすべてのコンポーネントに依存している必要はありません。

インクルードは明示的 (本当に必要なものすべてを含む) かつ正確 (依存していないものは含めない) である必要があります。

そうは言っても、各モジュールに個別のディレクトリがあるモジュールでコードを整理します。モジュールが複雑になり、サブモジュールへの分割が必要になった場合は、ネストされたディレクトリを追加できますが、単一の 2 レベルの階層で十分な場合があります。

于 2012-10-16T21:53:27.710 に答える