8

コンパイルする前にいくつかのファイルを自動生成する必要がある Eclipse プロジェクトがあります。この自動生成されたファイルをリポジトリに置きたくないので、プロジェクトをコンパイルするたびに、このファイルを自動生成するために事前ビルドを実行します。

問題は、この自動生成されたファイルが *.c および *.h ファイルであることです。最初にプロジェクトをコンパイルすると、次のことが (この順序で) 発生します。

  • pre-build: 一部の *.c および *.h を自動生成
  • build: Eclipse はこの自動生成ファイルをビルドしません

もう一度コンパイルすると、このファイルがコンパイルされます。これは、Eclipse がコンパイルするファイルの検出プロセスが原因で発生している可能性があります。コンパイルを開始する前は、この自動生成された *.c および *.h ファイルはありません。

2 回目のコンパイルでは、この自動生成されたファイルが既にあるため、このファイルがコンパイルされます。

4

2 に答える 2

5

カスタムビルドステップがいつ実行されるかを完全に制御したい場合、どのファイルを後で更新する必要があるか、環境、作業ディレクトリなどは、それを単純なビルド前ステップとして指定しないでください。プロジェクトのプロパティ->ビルダー->新規...に移動し、[プログラム]を選択します。

結果のダイアログでは、ツールの実行をより詳細に制御できます。たとえば、XMLファイルが保存されるたびにツールを実行したり、実行されるたびに自動生成されたすべてのファイルを更新するようにeclipseに指示したりできます。

于 2012-09-13T19:00:25.443 に答える
0

あなたの質問を正しく理解できれば、最初にプロジェクトをビルドすると、必要な *.c および *.h ソース ファイルが自動生成されるように見えますが、これらのソース ファイルがすぐに見つからないため、プロジェクトは完全にビルドされません。少し遅れて、プロジェクトに新しいファイルが追加されたことを Eclipse が認識し、2 回目のビルドを行うと、すべてが正常に進行します。それは正しいと思いますか?

これが事実であると仮定すると、私がすぐに考えたのは、何らかのスクリプトまたはメイクファイルを作成して、これらすべてのアクションを適切な順序で、1 つのアクションで実行できるようにすることです。手をどれだけ汚したいかによって、ここにリンクがあります;)

http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.cdt.doc.user/concepts/cdt_c_makefile.htm

于 2011-08-26T15:24:15.410 に答える