我想从Makefile创建一个.c文件。该C文件的内容如下:如何使用Makefile创建文件
char *variable1 = $(VAR1_FROM_MAKEFILE);
char *variable2 = $(VAR2_FROM_MAKEFILE);
是否有可能?
在此先感谢
我想从Makefile创建一个.c文件。该C文件的内容如下:如何使用Makefile创建文件
char *variable1 = $(VAR1_FROM_MAKEFILE);
char *variable2 = $(VAR2_FROM_MAKEFILE);
是否有可能?
在此先感谢
是的,你可以使用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);
}
嗨,我目前正在将该变量作为marco传递给编译器。但是,当VAR的值改变而没有修改Makefile时,这种情况就会失败。例如VAR:= $(shell时间+%H%M%S) 我想要做的事情是一个内核对象的Makefile。 AFAIK在内核模块的Makefile中没有“all:”规则。否则,你的第一个解决方案非常棒我对Makefiles知之甚少。 – PrashantB 2010-04-19 14:15:34
怎么样make的文件选项?
为GNU制作: https://www.gnu.org/software/make/manual/html_node/File-Function.html
至少在Ubuntu 14.04上不能与make-3.81一起使用。 – Sergey 2018-01-17 13:37:11
见你如何这个[问题](http://stackoverflow.com/questions/1327998/calling-sed-for-a-source-in-makefile-am)可以在makefile中使用sed。 – kgiannakakis 2010-04-19 13:44:08