C 使用make内联定义变量

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 我想你这里指的是+=,而不是=+。第二,您运行的命令应该可以工作,对于工作的某些定义,因此如果没有关于发生了什么以及为什么

我有以下C代码:

文件c:

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

你可能重复说你希望它能工作,这意味着它没有做你想做的事,但你没有说它不工作,你没有展示你尝试它时发生了什么,你没有解释出哪里出了问题。你可能重复说你希望它能工作,这意味着它没有做你想做的事,但你不会说它不起作用,你不会展示你尝试它时发生了什么,你也不会解释出哪里出了问题。