3

私は GNU make を使用しています。ソース ファイルとオブジェクト ファイルを別のフォルダーに配置したいと考えています。

最初のステップとして、ソース ファイルをプロジェクト フォルダーのルートに置き、オブジェクト ファイルをサブフォルダー (たとえばDebug/) に置きます。

推論規則は次のようになります。

.ss.obj:
    echo Assembling $*.ss...
    $(ASSEMBLY) $(2210_ASSEMBLY_FLAGS) $*.ss -o Debug\$*.obj 

ただし、その場合、ルート フォルダーに .obj がないため、make は常にすべてのファイルを再構築します。

行にターゲットのフォルダーを含める方法はあります.ss.objか?

私も試しました:

$(OBJS_WITH_PATH):$(SRC)    
    echo Assembling $<...
    $(ASSEMBLY) $(ASSEMBLY_FLAGS) $< -o $@ 

そのように構築されたすべて$(SRC)のソースのリストとして:$(OBJS_WITH_PATH)

OBJS_WITH_PATH = $(patsubst %.ss,Debug\\%.obj,$(SRC))

しかし、それはすべてのオブジェクト ファイルのすべてのソース ファイルへの依存関係を構築します。

私が望むのは、最初に書いた推論規則を変更して、Debug/*.objファイルを取得することです。それが今言っていることはですno rule to make target Debug/asdfasdf.obj

4

1 に答える 1

3

パターン ルールを使用します。

Debug/%.obj : %.ss
于 2010-04-23T09:22:18.653 に答える