我在Linux C ++上遇到了_DEBUG宏的问题。 我试着用这样的东西:
#ifdef _DEBUG
cout << "Debug!" << endl;
#endif
但是当我在IDE中选择Debug时它不起作用。但它适用于Windows。 我在Linux上使用Eclipse IDE进行C ++编码。
答案 0 :(得分:2)
如果您使用 cmake ,请在您的顶级 CMakeLists.txt 文件中添加以下内容
set_directory_properties(PROPERTIES COMPILE_DEFINITIONS_DEBUG "_DEBUG")
上找到
答案 1 :(得分:1)
将#define _DEBUG
放在您拥有此代码段的位置的某个位置,或者放在项目设置中。
答案 2 :(得分:1)
在Windows上,您可能正在使用Visual Studio,它在调试模式下构建解决方案时会自动定义 _DEBUG 符号。通常在调用编译器时定义符号,然后在预处理器阶段使用符号。
例如,如果您通过命令行使用GCC并且想要重新使用_DEBUG符号,因为您正在处理已经建立的代码库,则可以使用 -D 参数通过它来定义它。命令行。
#include <iostream>
int main() {
std::cout << "Hello world!\n";
#ifdef _DEBUG
std::cout << "But also Hello Stack Overflow!\n";
#endif
return 0;
}
使用以下命令行进行编译
g++ -D _DEBUG define.cpp
将给出以下结果
Hello world!
But also Hello Stack Overflow!
对于eclipse cdt,最好的选择可能是项目属性中的modify the paths and symbols properties。