私は楽しみのために小さいCプログラムを書いています。変更に派手なIDEを使用しないための演習として、MinGW(Cのみ)、make、およびNotepad++を使用することにしました。これまでのところ、とても楽しくて楽しいです。
(MinGW ==私はWindowsで作業しています。)
プログラムはバニラCIに対してコンパイルされるので、完全に移植可能にすることを考えました。MinGW makeとgccは、ルールからプログラムを作成するのに十分賢いです。
myprog: myprog.o other.o
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@
明らかに、私はWindowsを使用しているので、コンパイラはを作成しますmyprog.exe
。これは非常にスマートで、全体を非常にポータブルにします。
標準のターゲットに関してclean
は、実際にそのルールを使用しているので、少なくとも実装したいと思います。これで、Windowsで実際に機能するクリーンなターゲットは次のようになります。
clean:
rm myprog.exe *.o
プログラムには拡張機能がないため、このルールはPOSIX環境では確実に機能しません。(PSOIX:GNU / Linuxだと思います)
あまり気にせずにクリーンを実装するポータブルな方法はありますか?
これまでのところ、この問題に関して本当に役立つドキュメントは見つかりませんでした。autoconfとautomakeがこの問題にどのように取り組んでいるかを見ると、パターンが導入されています@EXEEXT@
。しかし、それは環境をテストする長い構成コードに依存しています。