我想从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)