我在程序中有这样的调试输出:
#define DEBUG
...
#ifdef DEBUG
std::cout << "[RE_words] " << m_re << std::endl;
#endif
我手动在程序中定义了DEBUG
,发布版本时我总是将该行注释掉。在Visual Studio中,还有针对Debug与Release版本的配置,它们处理用于编译的命令行等内容。我能否使用"Debug"配置来自动向编译器定义DEBUG
?如何操作?
我在程序中有这样的调试输出:
#define DEBUG
...
#ifdef DEBUG
std::cout << "[RE_words] " << m_re << std::endl;
#endif
我手动在程序中定义了DEBUG
,发布版本时我总是将该行注释掉。在Visual Studio中,还有针对Debug与Release版本的配置,它们处理用于编译的命令行等内容。我能否使用"Debug"配置来自动向编译器定义DEBUG
?如何操作?
使用_DEBUG
。Visual C++会为Debug配置定义此常量。在项目属性对话框中查看Debug配置的预处理器指令。
我之前也认为只要查看预处理器属性并删除_DEBUG就可以了。但是,如果您选择调试运行时库选项之一,Visual Studio会设置_DEBUG以帮助您。
在项目属性页面配置属性\C/C++\代码生成中,对于运行时库选择的选项会影响多个定义。当选择调试库(/MTd或/MDd)时,_DEBUG定义被设置。
有关这些开关的更多信息,请参见MSDN /MD、/MT...。根据这些选项设置了几个#define,当您尝试查找在包括任何头文件之前谁设置了#define时,它们通常是相当隐形的!
是的,您应该检查项目选项页面,编译 ->高级编译选项。 但是,VS默认情况下会自动为调试模式定义DEBUG指令。
_DEBUG
指令。请注意下划线。 - notbad.jpeg