首页 > 解决方案 > 用于学习的自定义 make 命令

问题描述

我想要一个像这样的 make 命令,但是我可以向其传递许多参数,并且生成的文件的名称是第一个文件的名称。

它必须接受带有 .c 的名称,并从可执行文件名的源文件名中删除 .c。

# My custom make command
mk() {
    echo "gcc -ggdb -std=c99 -Wall -Werror ${1}.c -o $1";
    gcc -ggdb -std=c99 -Wall -Werror ${1}.c -o $1 ;
}

可能是这样的?

mk() {
    echo "gcc -ggdb -std=c99 -Wall -Werror ${@} -o $1";
    output=$1
    set -- "${@/%/.c}"
    gcc -ggdb -std=c99 -Wall -Werror ${@} -o $output;
}

标签: cbash

解决方案


您可以编写一个Makefile允许您使用单个规则创建多个目标的方法。

事实上,构建一个<FOO>from<FOO>.cmake有一个预定义规则的东西,所以你可以创建一个 Makefile

CC = gcc
CFLAGS = -ggdb -std=c99 -Wall -Werror

然后运行make bar

只要有一个名为 的文件bar.cmake就会为您构建它。


推荐阅读