GNUMake具有编译某些文件类型的隐式规则,例如,如果我有一个文件1.cpp
在我的目录中,并且我在终端make 1
上写,则执行以下命令:
g++ 1.cpp -o 1
由于隐式Makefile
规则,所有这些都在目录中没有任何Make
的情况下发生。但是,我无法弄清楚如何为了我的利益修改这些规则。例如,如果我需要像这样编译我的文件:
g++ -std=c++14 -O2 -g -w -o 1 1.cpp
为此,我想运行命令:make 1
,它应该这样做。此外,它应该是任何文件的通用,例如我现在创建一个文件2.cpp
并写make 2
,它应该编译它并生成可执行文件,即使没有{{1}的规则在我的2
中。
此外,如果我现在转到另一个未提及此显式规则的目录,则应仅根据默认隐式规则进行编译。我如何实现这个目标?
答案 0 :(得分:2)
一种方法是set
环境中隐式规则使用的变量
set CXXFLAGS="-std=c++14 -O2 -g -w"
如果您只希望将其应用于单个目录,请将Makefile
放在包含以下内容的目录中
CXXFLAGS := -std=c++14 -O2 -g -w