配置 Makefile

配置 Makefile

我正在尝试创建一个文件Makefile来使用,make以便可以更快地编译我的代码。我想要做的就是在终端中输入:

make dev myOutputName

它应该运行:

gcc -Wall -ansi -pedantic -O2 dev.c -o myOutputName

到目前为止我有以下内容Makefile

CFLAGS = -Wall -ansi -pedantic -O2 -Wno-unused-result
CC = gcc

%: %.c
    $(CC) $(CFLAGS) $<  -o $\dev

首先,上面的代码正确吗?我测试过了,可以编译,但是输出名称始终是dev

我怎样才能改变它以便我可以输入:

make dev myOutputName

它将运行:

gcc -Wall -ansi -pedantic -O2 dev.c -o myOutputName

答案1

您实际上不需要 Makefile,您可以使用 bash 函数。将其添加到您的~/.bashrc文件中:

function mkdev(){
    gcc -Wall -ansi -pedantic -O2 $1 -o $2
}

然后,source ~/.bashrc(如果你不使用 bash,移植到其他 shell 也很容易)或者简单地打开一个新终端,你就可以用

mkdev dev myOutputName

bash$1$2、 ... 中,$N是提供给程序或函数的参数。因此,上面的函数采用第一个参数并查找具有该名称和.c扩展名的文件,第二个参数是输出名称。

答案2

make不接受参数列表。它接受目标列表。不过,您可以从调用命令中设置变量

make O=myOutputName dev 

在 Makefile 中:

%: %.c
       gcc -Wall -ansi -pedantic -O2 $< -o $(O)

相关内容