0

idl のコンパイルにはツールが使用されます。test.idl がコンパイルされると、test.idl.h と test.idl.cc が得られます。更新するときに idl を再コンパイルします。しかし今、私は循環的な依存関係に遭遇しました:

                Test.idl.cc  => Test.idl             ( use tool to generate Test.idl.cc )
                Test.idl     => Test.idl.o           ( It's a implicit rule !!! )
                Test.idl.o   => Test.idl.cc

すると、おかしなことが起こります。

修正するにはどうすればよいですか? ツールを修正して出力ファイル名を変更するのは実際には困難です。

*.idl をソース ファイルとして指定できますか? 次に、make は暗黙のルールを無視しますか?

4

1 に答える 1

0

しかし、それは役に立ちませんよね?問題はTest.idl生成されるだけではなく、生成されたファイルと入力ファイルに同じ名前が使用されることです。

ソース ファイル名またはコンパイル済みファイル名のいずれかを変更する必要があります。

.idl良い方法の 1 つは、下流のコンポーネントからを取り除くことです。

アップデート:

あはは、.c ファイルから拡張子なしのリンク ファイルを作成するために存在する暗黙のルールをキャンセルできます。ここ gmake docs で説明されているように、レシピなしでパターンルールを定義するだけです。

于 2013-01-11T17:28:18.473 に答える