C 使用make内联定义变量
我有以下C代码: 文件c:C 使用make内联定义变量,c,gcc,makefile,C,Gcc,Makefile,我有以下C代码: 文件c: int i=VAR; 它是使用生成文件编译的: CFLAGS =+ -DVAR=10 但是,我希望在每次使用命令行编译程序时更改变量,而不是仅使用“make”并依赖makefile中的变量来编译文件。 例如,我希望以下命令行可以工作: make CFLAGS=-DVAR=10 首先,这种语法是错误的: CFLAGS =+ -DVAR=10 我想你这里指的是+=,而不是=+。第二,您运行的命令应该可以工作,对于工作的某些定义,因此如果没有关于发生了什么以及为什么
int i=VAR;
它是使用生成文件编译的:
CFLAGS =+ -DVAR=10
但是,我希望在每次使用命令行编译程序时更改变量,而不是仅使用“make”并依赖makefile中的变量来编译文件。例如,我希望以下命令行可以工作:
make CFLAGS=-DVAR=10
首先,这种语法是错误的:
CFLAGS =+ -DVAR=10
我想你这里指的是+=
,而不是=+
。第二,您运行的命令应该可以工作,对于工作的某些定义,因此如果没有关于发生了什么以及为什么它不是您想要的信息,我们将无法提供帮助
然而,如果是我,我会做不同的事情;我会这样做:
VAR := 10
CFLAGS += -DVAR=$(VAR)
然后,当我想更改它时,我会运行:
make VAR=20
首先,这种语法是错误的:
CFLAGS =+ -DVAR=10
我想你这里指的是+=
,而不是=+
。第二,您运行的命令应该可以工作,对于工作的某些定义,因此如果没有关于发生了什么以及为什么它不是您想要的信息,我们将无法提供帮助
然而,如果是我,我会做不同的事情;我会这样做:
VAR := 10
CFLAGS += -DVAR=$(VAR)
然后,当我想更改它时,我会运行:
make VAR=20
你可能重复说你希望它能工作,这意味着它没有做你想做的事,但你没有说它不工作,你没有展示你尝试它时发生了什么,你没有解释出哪里出了问题。你可能重复说你希望它能工作,这意味着它没有做你想做的事,但你不会说它不起作用,你不会展示你尝试它时发生了什么,你也不会解释出哪里出了问题。