【问题标题】:Qt Creator's intellisense grays out #ifdef _DEBUG blocks even though Debug build is selected即使选择了调试构建,Qt Creator 的智能感知也会灰显 #ifdef _DEBUG 块
【发布时间】: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


【解决方案1】:

以下内容在我的*.pro 文件中运行良好:

CONFIG(debug, release|debug):DEFINES += _DEBUG

切换构建类型也会交换灰色区域。不过,我使用的是 Qt5。

【讨论】:

  • 感谢这个小小的但对我非常有用的 Qt (Creator) 新手提示!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 2016-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多