如何在Makefile中定义C++预处理器变量

59

我有一个像这样的C++预处理器:

  #ifdef cpp_variable
   //x+y;
  #endif

有谁能告诉我如何在Makefile中定义这个。

6个回答

58

这是与编译器相关的。

GCC 使用 -Dcpp_variable=VALUE 或者仅使用 -Dcpp_variable

Microsoft 的编译器使用 /D


37

请查阅您编译器的文档以了解如何实现此操作。

例如,对于g++编译器,语法为:

g++ -Dcpp_variable <other stuff>

这相当于添加

CPPFLAGS += -Dcpp_variable

在你的makefile中。


2
从技术上讲,因为你可以从命令行中完成它,所以可以通过makefile完成--只需在makefile中放入相关命令即可。(撇开吹毛求疵的话,当回答这个问题时,这个评论可能并不正确) - anon

12

添加到Makefile中:

CPPFLAGS = -Dcpp_variable

5
语法因编译器而异,对于gcc,请使用-D选项,例如:-Dcpp_variable

4

在Makefile中定义一个变量,需要定义什么内容就添加-DXXX。其中XXX在您的情况下是cpp_variable。

例如:

COMPILE_OPTS = -DXXX

g++ -c $(COMPILE_OPTS) $<


0
如果您想在C/CPP文件中执行以下操作:
#define VARIABLE_NAME 2 

然后,在 make 文件中使用以下行:

CDEFS += -DVARIABLE_NAME = 2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接