GCC何时定义NDEBUG?

15

可能是重复问题:
-DNDEBUG通常来自哪里?

我在我的代码中使用了断言,但我不知道它们是否会触发,因为我不知道是否定义了NDEBUG。我是否应该在编译时显式指定-DNDEBUG


2
通常情况下,DNDEBUG是在编译时作为预处理器宏定义的。在大多数情况下,除非显式地将其取消定义,否则它将始终存在于代码中。在Unix和Linux系统中,可以使用“-DNDEBUG”选项来启用或禁用DNDEBUG。 - MikeD
调试与发布(Debug vs Release)在CMake中的区别。 - parasrish
1个回答

20

是的,GCC本身不设置该标志。通常由makefile生成器设置,如AutomakeCMakeQMake


但是,制作工具何时/如何知道设置-NDEBUG - einpoklum
构建目标? - asu
使用gcc的命令行参数 - Sohail Si

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