Gcc 术语CFLAGS在Makefile中有什么意义吗?

Gcc 术语CFLAGS在Makefile中有什么意义吗?,gcc,makefile,Gcc,Makefile,我想知道我是否在制作一个makefile。我没有使用CFLAGS,而是使用CFLAGS_1,这是否有效。这是因为尝试使用逻辑(使用ifeq和else),如果我必须编译两组文件,例如A.c和B.c,但是B.c依赖于一个共享对象,那么我想更改用于它的CFLAGS。然而,我很难让它工作 ${PROG}: ${OBJS} ${CC} ${CFLAGS} -o ${PROG} ${OBJS} ${LDFLAGS} 使用CFLAGS_1是可以的,它只是不适用于任何已经使用CFLAGS的内置规则

我想知道我是否在制作一个makefile。我没有使用CFLAGS,而是使用CFLAGS_1,这是否有效。这是因为尝试使用逻辑(使用ifeq和else),如果我必须编译两组文件,例如A.c和B.c,但是B.c依赖于一个共享对象,那么我想更改用于它的CFLAGS。然而,我很难让它工作

${PROG}: ${OBJS}
     ${CC} ${CFLAGS} -o ${PROG} ${OBJS} ${LDFLAGS}

使用
CFLAGS_1
是可以的,它只是不适用于任何已经使用
CFLAGS
的内置规则

虽然这回答了您实际提出的问题,但我觉得您没有问的问题更相关。

您想要的是“特定于目标”的变量:其值取决于我们正在构建的文件:

A:CFLAGS:=

PROG := A B
${PROG}:...
    here you can use ${CFLAGS} and it will be the one assigned for the target you are building
B:CFLAGS:=

PROG := A B
${PROG}:...
    here you can use ${CFLAGS} and it will be the one assigned for the target you are building

你到底在尝试什么,什么不起作用?