c++ - 从 Makefile 中的 C++FLAGS 中删除标志?

标签 c++ c makefile

我有一个 Makefile,其中包含另一个设置许多默认值的 makefile。我无法编辑包含的 makefile,并且我想更改我的 makefile 中 C++FLAGS 的值,即使它是在包含的 makefile 中设置的。具体来说,每当 debug=1 时,我想从 C++FLAGS 中删除优化标志。

我尝试了以下方法:

C++FLAGS=$(filter-out -O3,$(C++FLAGS))

失败并出现以下错误:

Recursive variable `C++FLAGS' references itself (eventually).  Stop.

好像做这样的事情应该是可能的,有人知道其中的 secret 吗?

最佳答案

C++FLAGS:=$(filter-out -O3,$(C++FLAGS))

:= 赋值立即 评估右值,因此这应该有效。另一方面,= 具有延迟扩展语义(即,只要使用左值,C++FLAGS 就会扩展,从而导致递归)。

关于c++ - 从 Makefile 中的 C++FLAGS 中删除标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9611987/

相关文章:

c++ - 着色器和纹理坐标问题

c++ - Winsock 的 send() 工作异常

java - 为什么用某些编译器编译的程序可以被反编译而其他的(实际上)不能?

c - gcc arm __asm inline 在参数中传递常量

c - Makefile:没有链接问题的编译

c++ - 使用共享 QItemSelectionModel 在 QListView 中进行意外的移位选择

c++ - 背景更改时带有非 native 滚动条的 QTreeWidget

c - 从 Windows 上的蓝牙 COM 端口获取 FILE*

c++ - 为什么 Hello world 在 vi​​m 中无法打印,但在 tty 中却可以打印?

linux - 使安装错误 'nothing to be done'