首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libclang解析错误

Libclang解析错误
EN

Stack Overflow用户
提问于 2015-09-16 07:39:39
回答 1查看 765关注 0票数 0

我使用libclang和qt来为我的定制IDE创建自动完成功能。

我做了这个功能:

代码语言:javascript
复制
QList<CompleterItem> CodeTool::autocompletion(QString content, QTextCursor cursor, QString filepath, QStringList options)
{
    QList<CompleterItem> lst;

    QTemporaryFile file;
    file.open();
    QTextStream stream(&file);
    stream << content;

    const char* filen = file.fileName().toStdString().c_str();

    CXIndex index = clang_createIndex(0, 0);

    const char* args[] = {"-x", "c++" };
    qDebug() << filen;

    CXTranslationUnit tu = NULL;
    CXErrorCode err = clang_parseTranslationUnit2(index, filen, args, 2, NULL, 0, CXTranslationUnit_PrecompiledPreamble | CXTranslationUnit_Incomplete, &tu );
    qDebug() << filen;
    if (err != 0){
        qDebug() << err;
        return lst;
    }

    // some things ....
}

但不起作用。输出显示错误代码=1( libclang文档中的未知错误)。此外,在调用解析函数之前和之后对filen进行了修改。示例:

C:/Users/Yoann/AppData/Local/Temp/plugin-test.Ns4152 C:\Dev\Qt\Qt5.5.0\Tools\mingw492_32\include\c++\4.9.2

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2015-09-17 17:41:05

我用parseTranslationUnit而不是parseTranslationUnit2来解决这个问题

代码语言:javascript
复制
CXTranslationUnit tu = clang_parseTranslationUnit(index, file.fileName().toStdString().c_str(), args, 3, NULL, 0, CXTranslationUnit_PrecompiledPreamble | CXTranslationUnit_Incomplete);
if (tu == NULL){
  return lst;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32602498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档