如何使用Makefile创建文件

Pra*_*ntB 7 makefile

我想从Makefile创建一个.c文件.该C文件的内容如下:

char *variable1 = $(VAR1_FROM_MAKEFILE);
char *variable2 = $(VAR2_FROM_MAKEFILE);
Run Code Online (Sandbox Code Playgroud)

可能吗?

提前致谢

phi*_*ant 10

是的,您可以使用shell重定向将变量写入源文件:

VAR1=foobar
all:
    @echo "char *variable1 = \"$(VAR1)\"" > generated.c
Run Code Online (Sandbox Code Playgroud)

(@符号在此处不显示make显示的echo命令).


编辑:我不知道你的意图是什么,但将Makefile变量作为宏传递给编译器可能更简单:

VAR="toco.conf"
CFLAGS = -DVAR='$(VAR)'
all:
    gcc  $(CFLAGS) prog.c
Run Code Online (Sandbox Code Playgroud)

使用prog.c:

#include <stdio.h>

int main(int ac, char **av)
{
    printf("%s\n", VAR);
    exit(0);
}
Run Code Online (Sandbox Code Playgroud)