使用正确的源文件的C ++ Makefile?

时间:2019-03-11 15:11:48

标签: c++ makefile gnu

我要输入以下内容:

make fileName.cpp

先编译,然后执行:

./fileName

如果我有一个这样的make文件:

commandToCompileFileName:
    g++ -o fileName fileName.cpp

然后我可以做:

make commandToCompileFileName

然后:

./fileName

我希望能够对不同的文件执行此操作,而不必在makefile中为每个文件编写不同的提示。所以可以代替

commandToCompileFileName

在makefile中,它将仅编译我在make之后键入的内容,而可执行文件将被命名为相同的名称,而不是.cpp。

第一段中的page恰好描述了我想要的内容,并且可能回答了我的问题,但是在使用'$ @'和'$ <'之后我还是无法弄清楚。

2 个答案:

答案 0 :(得分:1)

您实际上不需要Makefile来执行此操作:make附带了一堆默认规则,其中一个默认规则是根据.cpp文件创建程序的。

换句话说,只需键入make fileName,然后感到开心:)

(如果要自定义编译标志,请参见CXXFLAGSLDFLAGS变量)

答案 1 :(得分:0)

我使用以下内容:

run_% : %
    @echo "---- running $< ----"
    $<

.PHONY : run_%

例如,在执行make run_test时,它将建立test目标并运行它。