我想从Makefile创建一个.c文件。该C文件的内容如下:
char *variable1 = $(VAR1_FROM_MAKEFILE);
char *variable2 = $(VAR2_FROM_MAKEFILE);
有可能吗?
提前致谢
答案 0 :(得分:8)
是的,您可以使用shell重定向将变量写入源文件:
VAR1=foobar
all:
@echo "char *variable1 = \"$(VAR1)\"" > generated.c
(@符号在这里没有显示make的echo命令。)
编辑:我不知道你的意图是什么,但将Makefile变量作为宏传递给编译器可能更简单:
VAR="toco.conf"
CFLAGS = -DVAR='$(VAR)'
all:
gcc $(CFLAGS) prog.c
使用prog.c:
#include <stdio.h>
int main(int ac, char **av)
{
printf("%s\n", VAR);
exit(0);
}
答案 1 :(得分:6)
make的文件选项怎么样?
对于Gnu Make: https://www.gnu.org/software/make/manual/html_node/File-Function.html