【发布时间】:2013-02-06 12:57:48
【问题描述】:
当我的代码中有这样的#ifdef 时
#ifdef _DEBUG
printf("This is a debug build");
#endif
Qt Creator 使 printf 变灰,即使它是一个调试版本,当我运行它时,"This is a debug build" 会被打印出来。
似乎智能感知没有看到将通过命令行(即-D_DEBUG)而不是在头文件/源文件中定义的预处理器定义。
【问题讨论】:
-
你会想看看这个答案stackoverflow.com/a/8298770/159834
-
感谢您的链接。我的项目目录中没有配置文件。另外我如何让它为调试版本定义_DEBUG,而不是为发布版本定义?
-
只需创建它。不过,我不知道如何根据构建类型有条件地做到这一点。
-
它需要在调试和发布版本之间自动更改,否则它不会是一个有用的解决方法。每次更改构建模式时,我都需要编辑 .config 文件。这可能是 Qt Creator 中的错误/疏忽。智能感知应该看到与编译器将看到的相同的预处理器定义。
标签: c++ qt qt-creator conditional-compilation