フォルダ構造:Makefileの混乱偽ハック
- のMakefile
- rect_01.c
- rect_02.c
- square_01.c
のMakefile(関連部品):
%.c:
echo 'Building [email protected] for $(PLATFORM)...'
$(CC) $(CFLAGS) [email protected] -o '$(DESTDIR)/$*'
コマンド:
make rect_01.c PLATFORM=FOO
問題は - 私に出力を与えた:
'rect_01.c up already to date'
だから私はハックを試してみましたが、%の.Cは、すべて実行する必要があるように私は.PHONY、 に追加の依存関係を追加しました時間。しかし今は、私の メイクファイルに拡張子.cがなくてもコンパイルしようとしています。
私は、次の更新されたメイクファイル(関連部分)を書いた:
.PHONY: phonyDummy
%.c: phonyDummy
echo 'Building [email protected] for $(PLATFORM)...'
$(CC) $(CFLAGS) [email protected] -o '$(DESTDIR)/$*'
私に次のような出力が得られます。
make rect_01.c PLATFORM=LINUX_X86
echo 'Building Makefile.c for LINUX_X86...'
Building Makefile.c for LINUX_X86...
g++ -Wall -g Makefile.c -o '../Executables/Makefile'
Makefile: file not recognized: File format not recognized
Makefile:55: recipe for target 'Makefile.c' failed
make: *** [Makefile.c] Error 1
あなたはこの動作を説明できますか?
メイクファイルの出力は入力ではなく左側になります。 – stark