KDevelop解析器配置缺少头文件

时间:2018-01-04 16:54:22

标签: c++ kdevelop

我即将使用Archlinux上的CMake为C ++项目配置KDevelop(5.2.1)。在KDevelop中以及从命令行构建我的项目,但是我为代码完成遇到了几个解析器问题:

  1. 一开始,我包含了像

    这样的C ++标准库头文件
    #include <cstdlib>
    

    在默认系统中找不到的标头包含目录。我需要在Project-&gt; Open Configuration-&gt; Language Support-&gt; Includes / Imports中添加这些目录:

    /usr/include/
    /usr/include/c++/7.2.1/
    

    对于C标题,它看起来很简单。在C ++的情况下,这看起来很糟糕,因为它看起来可能会不时发生变化。

    是否有更可靠且独立于项目的方式来执行此配置?

  2. 解析器错过了本地头文件中的一些声明,这取决于已配置的include目录列表。例如,QuadMatrix类在include/quadmatrix.h中声明。在代码中

    #include <cstdlib>
    
    #include "quadmatrix.h"
    
    
    QuadMatrix::QuadMatrix(int dimSize)
        : dimSize(dimSize)
    {
        data = (int*) std::malloc(sizeof(int) * 2 * dimSize);
    }
    
    当我配置系统包含目录时,

    QuadMatrix是解析器的“未声明标识符”,如1所示。如果我重置此配置cstdlib并且std::malloc未知,但最终宣布QuadMatrix

    我还尝试将项目include目录添加到配置中,但它没有改变任何内容,并且首先不是必需的。

    有趣的是,编辑建议我在两种情况下都添加#include <quadmatrix.h>,但这也无法解决问题。

  3. 修改 我发现在Project-&gt; Open Configuration-&gt; Language Support-&gt; C / C ++ Parser(右下角)下使用GCC代替Clang解决了我的问题并使我的任何包含目录配置不必要。所以我猜KDevelop以错误的方式使用了clang解析器(5.0)。

0 个答案:

没有答案