0
は私が私のメイクで、このルールを持って働いていない、動作しますが、はがそれを見つけられませんでしたします:がそれらを使用しますが作る、Makefileは:明示的なエントリは、ワイルドカード%が
$(BUILDDIR)%.o : $(BUILDDIR)%.bin
@echo
$(OBJCOPY) -I binary -O elf32-avr --redefine-sym _binary_$*_bin_start=$* --redefine-sym _binary_$*_bin_end=$*_end $< [email protected]
私はそれを明示的に行う場合(ビルド/ rom1.oを求め、/ rom2.oを構築; BUILDDIRは= /ビルド)
$(BUILDDIR)rom1.o : $(BUILDDIR)rom1.bin
@echo
$(OBJCOPY) -I binary -O elf32-avr --redefine-sym _binary_rom1_bin_start=rom1 --redefine-sym _binary_rom1_bin_end=rom1_end $< [email protected]
$(BUILDDIR)rom2.o : $(BUILDDIR)rom2.bin
@echo
$(OBJCOPY) -I binary -O elf32-avr --redefine-sym _binary_rom2_bin_start=rom2 --redefine-sym _binary_rom2_bin_end=rom2_end $< [email protected]
誰もが私の最初の試みで、ワイルドカードでいただきました!間違ったヒントを持っていますか?
編集: makeのバージョンは、Ubuntu 16.04で動作します。
make: *** No rule to make target 'build/rom1.o', needed by 'build/rom1.elf'. Stop.
あなたは「makeがそれを見つけられませんでした」で何を意味するかを定義してください。 'make 'を実行したとき何が起こったのですか?また、使用しているメールのフレーバーとバージョン、使用しているオペレーティングシステム(使用している場合もあります)を必ず指定してください。 – MadScientist
@MadScientist上記の投稿を更新しました –
ありがとうございました。あなたが提供したメークファイルの部分に何か間違っているとは思わないので、問題は別の場所にあるはずです。あなたは 'make -d'を実行する必要があります(多くの出力を生成します)、パターンルールと一致する部分を探し、makeがそれにマッチしない理由を確認します。 'build/rom1.bin'ファイルが存在すると仮定しています。 – MadScientist