带有cmake的qtCreator,编辑器中未正确解析__cplusplus值

QtCreator with CMake, Incorrectly parsed __cplusplus value in editor

本文关键字:cplusplus cmake qtCreator 编辑器 带有      更新时间:2023-10-16

我在qtcreator中使用了一个cmake项目,并启用了C 17。

我可以编译并使用C 17功能而没有问题。打印__cplusplus的值时,我会得到201703,但是当我悬停在QTCreator编辑器中的宏时,它显示了1的值。

因此,对于任何C 11(及以后(功能,我没有完成任何代码完成或突出显示。这使得处理很烦人。

诸如<memory>之类的标准标题具有一堆检查,例如:

#if __cplusplus >= 201103L
// unique_ptr and shared_ptr

由于不正确的__cplusplus值,编辑器会在条件下禁用所有代码。

环境:

  • fedora 29
  • cmake 3.12
  • GCC 8.3.1
  • QTCreator 4.7.2(QT 5.11.3(

这是QTCreator和Cmake项目的已知问题吗?是否有工作可以使QTCreator编辑器使用CMAKE/GCC提供的正确__cplusplus值来解析代码?

似乎qtcreator 4.7.2关于__cplusplus的错误被定义为1。现在升级到4.9.0现在正确将__cplusplus定义为201703(对于C 17 CMAKE项目(。

#define __cplusplus 201103L放在&lt; project&gt; .config文件中为我工作。