私は 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
。