gpt4 book ai didi

debugging - _DEBUG 何时何地定义?

转载 作者:行者123 更新时间:2023-12-04 03:07:46 24 4
gpt4 key购买 nike

我的一个头文件中有以下示例代码:

#ifdef _DEBUG
#define _DEBUG_NEW_REDEFINE_NEW 0
#include "debug_new.h"
#else
#define DEBUG_NEW new
#endif

包含此头文件的应用程序是使用带有 -DDEBUG 选项的 gcc 编译器编译的。

问题:

_DEBUG 是因为 -DDEBUG 选项定义的吗?

最佳答案

-DDEBUG只会定义 DEBUG , 不是 _DEBUG .找出原因(或如果)_DEBUG正在定义,尝试构建包含该 header 的源文件

gcc --other_options source_file.cc -E -dD -o source_file.ii

(您可能必须在命令行中删除另一个 -o 标志。)然后 source_file.ii 将为每个已定义的宏包含 #define 行,并且 # <lineno> <header>每次更改头文件时的行数。

您可以阅读 http://gcc.gnu.org/onlinedocs/gcc-4.6.2/gcc/Preprocessor-Options.html#index-dD-946看看到底是什么 -dD

关于debugging - _DEBUG 何时何地定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8499854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com