如何使用Makefile创建文件
我想从Makefile创建一个.c文件。该C文件的内容如下:如何使用Makefile创建文件,makefile,Makefile,我想从Makefile创建一个.c文件。该C文件的内容如下: char *variable1 = $(VAR1_FROM_MAKEFILE); char *variable2 = $(VAR2_FROM_MAKEFILE); 可能吗 提前感谢是的,您可以使用shell重定向将变量写入源文件: VAR1=foobar all: @echo "char *variable1 = \"$(VAR1)\"" > generated.c (此处的@符号不允许make显示echo命令)
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
程序c为:
#include <stdio.h>
int main(int ac, char **av)
{
printf("%s\n", VAR);
exit(0);
}
#包括
内部主(内部ac,字符**av)
{
printf(“%s\n”,VAR);
出口(0);
}
make的文件选项如何
对于Gnu Make:
您好,我目前正在将变量作为marco传递给编译器。但是,当VAR的值在不修改Makefile的情况下更改时,这种情况就失败了。e、 g VAR:=$(shell时间+%H%M%S)我想做的是为内核对象创建一个Makefile。在内核模块的Makefile中没有“all:”规则。否则,您的第一个解决方案是伟大的!我对Makefiles知之甚少。请看这篇文章,了解如何在makefile中使用sed。至少在Ubuntu 14.04上不能使用make-3.81。事实上,需要make 3.82或更高版本