
makefile がない場合に、make によって自動的に適用されるルールを変更する方法があるかどうかを知りたいです。例を挙げると、make foo
というファイルを含むディレクトリに書き込むと、ディレクトリ内にファイル がない場合でもfoo.cpp
実行されます 。g++ foo.cpp -o foo
makefile
必要に応じて変更したいのですが、
g++ foo.cpp -o foo --std=c++11 -W -O2 -I ....
.c、.java、.texなどの他の拡張子にも新しいルールを追加したいです。
新しいルールを定義する方法はわかっていますが、各ディレクトリに makefile を作成する以外に、どこで指定すればよいかわかりません。これらの組み込みルールをすべて保持するファイルがあると思いますが、それを見つけることができていません。また、独自のルールでそれをオーバーロードする方法もわかりません。
私は主に Mingw と cygwin を使って作業しています。
答え1
によるマニュアル実際のルールは次のとおりです。
n.cc
は、、、n.cpp
またはn.C
' ' 形式のレシピから自動的に作成されません。C ++ ソース ファイルには、' ' ではなく$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c
サフィックス ' ' を使用することをお勧めします。.cc
.C
したがって、環境変数を調整するか (たとえば、~/.bashrc
)、そのルールをオーバーライドする Makefile を作成する必要があります。
make -p
すべてのデフォルトと組み込みルールを学習するには、Makefile のないディレクトリで使用します。