KDevelop分析器配置缺少头文件 我将在Clinux上使用CMAX配置C++项目的KDevelop(5.2.1)。在KDevelop中以及在命令行中构建我的项目是可行的,但在代码完成方面我遇到了几个解析器问题:

KDevelop分析器配置缺少头文件 我将在Clinux上使用CMAX配置C++项目的KDevelop(5.2.1)。在KDevelop中以及在命令行中构建我的项目是可行的,但在代码完成方面我遇到了几个解析器问题:,c++,kdevelop,C++,Kdevelop,开始时,我的C++标准库头包括 #include <cstdlib> 对于C头,它看起来相当简单。在C++的情况下,这看起来很糟糕,因为它看起来有时会发生变化。 是否有更可靠和独立于项目的方式来执行此配置 解析器会丢失本地头文件中的一些声明,这些声明依赖于已配置的include目录列表。例如,include/quadmartrix.h中声明了quadmartrix类。在代码中 #include <cstdlib> #include "quadmatrix.h" Q

开始时,我的C++标准库头包括

#include <cstdlib>
对于C头,它看起来相当简单。在C++的情况下,这看起来很糟糕,因为它看起来有时会发生变化。 是否有更可靠和独立于项目的方式来执行此配置

  • 解析器会丢失本地头文件中的一些声明,这些声明依赖于已配置的include目录列表。例如,
    include/quadmartrix.h
    中声明了
    quadmartrix
    类。在代码中

    #include <cstdlib>
    
    #include "quadmatrix.h"
    
    
    QuadMatrix::QuadMatrix(int dimSize)
        : dimSize(dimSize)
    {
        data = (int*) std::malloc(sizeof(int) * 2 * dimSize);
    }
    
    #包括
    #包括“quadmartrix.h”
    QuadMatrix::QuadMatrix(int dimSize)
    :dimSize(dimSize)
    {
    数据=(int*)标准::malloc(sizeof(int)*2*dimSize);
    }
    
    quadmartrix
    是在配置系统包含目录时解析器的“未声明标识符”,如图1所示。如果我重置此配置,则
    cstdlib
    std::malloc
    未知,但
    quadmartrix
    最终声明

    我还试图将projectinclude目录添加到配置中,但它没有改变任何东西,而且一开始也不是必需的

    有趣的是,编辑建议我在这两种情况下都添加
    #include
    ,但这也不能解决问题

  • 编辑: 我发现在Project->Open Configuration->Language Support->C/C++解析器(右下角)下使用
    GCC
    而不是
    Clang
    ,解决了我的问题,并使我的任何include目录配置都变得不必要。因此,我猜KDevelop以错误的方式使用了clang解析器(5.0)。

    您可能需要发布“编辑:”部分作为问题的答案。
    #include <cstdlib>
    
    #include "quadmatrix.h"
    
    
    QuadMatrix::QuadMatrix(int dimSize)
        : dimSize(dimSize)
    {
        data = (int*) std::malloc(sizeof(int) * 2 * dimSize);
    }