4

EDE を使用して、特定の階層の下に複数のターゲットを含むプロジェクト ディレクトリの Makefile を生成する方法を理解しようとしています。運が悪く、情報ページが私の質問に答えていないようです。

私のディレクトリ構造は次のようになります: (アスタリスク (*) は main() 関数を含むファイルを示します)

research/
  flow/
    flow.cpp
    flow.hpp
    program.cpp *

  samples/
    sample1.yuv

  utils/
    yuvreader.cpp
    yuvreader.hpp

  tests/
    yuvreader_test.cpp *

1 つ以上のサブプロジェクトを含む EDE プロジェクトを作成したいと考えています。それとも、1つまたは複数のターゲットが必要なだけですか...?

flow の program.cpp には flow/ および utils/ ソースが必要ですが、yuvreader_test には utils/ ソースのみが必要です。

ルート ディレクトリとすべてのサブディレクトリで ede-new を実行しました。ルートディレクトリでede-new-targetも行ったのですが、サブディレクトリにソースファイルを追加すると、作成したターゲットが認識されません。

私がやろうとしているようなことのために、誰かがもっと複​​雑な Project.ede ファイルを教えてくれたら幸いです。クラス コード ファイルを含むサブディレクトリがさらにあると推測できます。その中には、そのコードを使用するスタンドアロン プログラムが含まれているものもあります。また、tests/ の下にさらにテスト コードがあります。ファイル/コマンドのワークフローの例をいただければ幸いです。

4

1 に答える 1

2

Makefile または Automakefile を生成する EDE 機能には、Make または Automake よりもいくつかの制約があります。たとえば、ターゲットに属するファイルは、ターゲットを含むプロジェクトと同じディレクトリにある必要があります。あなたの例では、ルート ディレクトリにプロジェクトがない可能性があります。

複数のソースを 1 つのプログラムにまとめるための簡単なメカニズムは、プログラム内で一緒にリンクされるアーカイブ (.a) または共有ライブラリ (.so) を各サブディレクトリに作成させることです。

制約が強すぎる場合は、独自の automake ファイルを作成することもできます。EDE はそれらを直接読み取るため、必要に応じてより複雑なビルド手順を使用できます。

CEDET ディストリビューションはビルド プロセスとして EDE を使用するため、これを複雑な例として見ることができます。ただし、C++ ファイルはビルドされないため、必要なほど役に立たない場合があります。

于 2012-02-08T12:49:33.313 に答える