Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 自动#根据Visual Studio中的调试/发布配置定义_C++_Visual Studio_Visual Studio 2010_Compilation - Fatal编程技术网

C++ 自动#根据Visual Studio中的调试/发布配置定义

C++ 自动#根据Visual Studio中的调试/发布配置定义,c++,visual-studio,visual-studio-2010,compilation,C++,Visual Studio,Visual Studio 2010,Compilation,我的程序中有如下调试输出: #define DEBUG ... #ifdef DEBUG std::cout << "[RE_words] " << m_re << std::endl; #endif #定义调试 ... #ifdef调试 std::cout使用\u调试。VisualC++为调试配置定义了这个。在项目的“属性”对话框中查看调试配置的预处理器指令。是的,您应该检查项目选项页,Compile->Advanced Compile optio

我的程序中有如下调试输出:

#define DEBUG
...
#ifdef DEBUG
    std::cout << "[RE_words] " << m_re << std::endl;
#endif
#定义调试
...
#ifdef调试

std::cout使用
\u调试
。VisualC++为调试配置定义了这个。在项目的“属性”对话框中查看调试配置的预处理器指令。

是的,您应该检查项目选项页,Compile->Advanced Compile options。
但是,默认情况下,VS会自动为调试模式定义调试指令。

Visual Studio会自动为调试生成定义调试符号(对于非调试生成,会自动定义NDEBUG)

另一种方法是转到项目设置->配置属性->C/C++->预处理器,手动编辑预处理器定义

另请参见:
更详细地解释_DEBUG和NDEBUG之间的差异。

解释NDEBUG符号的用途以及它是否由标准定义。

我也认为我只需要查看预处理器属性并删除调试。如果选择调试运行时库选项之一,VisualStudio将通过设置_DEBUG来提供帮助

在项目属性页配置属性\C/C++\Code生成上,为运行时库选择的选项会影响多个定义。选择调试库(/MTd/MDd)时,将设置\u debug定义


有关交换机的更多信息。有几个#定义是基于这些选项设置的。当你甚至在包含任何头文件之前,试图找到谁设置了一个#define时,它们是相当不可见的

顺便说一句,NDEBUG是可移植的解决方案。不幸的是,调试版本中没有标准符号。您好,您如何确定vs定义了这些宏?在msdn上,它只提到了_DEBUG,而不是NDEBUG,请问我在哪里可以看到一个包含所有宏的列表?Icebone1000:我添加了一个链接,解释了NDEBUG是否是一个标准符号,以及为什么它会被认为是可移植的。请参阅VS中的。注意,如果手动编辑定义,可能需要在识别它们之前重新启动VS。我相信这是
\u DEBUG
指令。请注意下划线。