
我想知道是否有一種方法可以在沒有 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
根據手動的,規則其實是:
no 是由
n.cc
,n.cpp
, 或n.C
' ' 形式的配方自動產生的$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c
。我們鼓勵您對 C++ 原始檔使用後綴“.cc
”,而不是“.C
”。
因此,要么調整環境變數(例如,在 中~/.bashrc
),要么只是建立一個覆蓋該規則的 Makefile。
在沒有 Makefile 的目錄中使用make -p
來了解所有預設值和內建規則。