在构建模式下使用#define

时间:2015-03-14 16:33:08

标签: c++ build compilation

在调试模式下构建时是否可以定义一些内容?

例如:

...
#ifdef ENABLE_DEBUG
/* This line will be executed if the program is built in debug mode */
#endif
...

1 个答案:

答案 0 :(得分:1)

这确实是可能的,因为谁定义了“调试模式”的含义。没有“标准”方法可以做到这一点,因为没有“标准”调试模式这样的东西。作为构建系统的作者,您可以控制所有构建设置。如果您决定定义宏DEBUG当且仅当在调试模式下构建时,您当然可以在代码中使用#ifdef DEBUG来区分调试和非调试版本。

您可以获得的最接近的“标准”事项是指定宏assert在宏NDEBUG 定义时进行检查,并在{ {1}} 定义。出于这个原因,IDE通常会设置构建配置,以便调试版本不会定义NDEBUG,而优化版本也会这样做。