具有CMake的QtCreator,在编辑器中错误地解析了__cplusplus值

时间:2019-05-03 03:51:42

标签: c++ gcc cmake qt-creator fedora

我在启用C ++ 17的QtCreator中使用了一个CMake项目。

我可以毫无问题地编译和使用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值的代码?

1 个答案:

答案 0 :(得分:0)

QtCreator 4.7.2似乎有一个关于将__cplusplus定义为1的错误。现在,升级到4.9.0可以正确地将__cplusplus定义为201703(对于C ++ 17 Cmake项目)。