libclang相关内容

使用 Clang 的 Vim(C/C++ 完成)的 C 系列语义自动完成插件(clang_complete,YouCompleteMe)

我在 Windows 上使用 64 位 Vim,thisHaroogan 的版本: +python27+蟒蛇33+巨大的 我正在尝试使用 clang_complete,所以我使用了 libclang.dll 库 这里 并且我设置了我的 vimrc 正确.libclang.dll 找到了. 但是,当我打开 *.cpp 文件时,我现在收到一条消息: libclang 找不到内置的包含这 ..
发布时间:2022-01-05 12:43:23 其他开发

检索有关预处理器指令的信息

我最近开始使用 libclang 来解析 C 文件.我遇到的问题显然是,libclang 在生成 AST 之前启动了预处理器.我想禁止预处理器运行,而是提供预处理器指令在文件中的信息... 我使用以下 python 脚本(cindex.py 和 libclang) 导入编解码器从 clang.cindex 导入 *类源文件(对象):def __init__(self, path):使用 c ..
发布时间:2021-07-19 18:54:57 C/C++开发

使用python libclang检索评论

在下面的头文件中,我想对类和成员变量获取相应的 + reflect 注释: #ifndef __HEADER_FOO#定义__HEADER_FOO//+反射Foo类{上市:私人的:int m_int;//+反射};#万一 使用libclang的python绑定和以下脚本: import sys导入clang.cindexdef dumpnode(node,indent):打印''*缩进 ..
发布时间:2021-04-22 18:41:03 C/C++开发

clang无法独立解析我的.h文件

我正在使用libclang的python绑定,但我认为此问题是由libclang而不是python绑定引起的. 我有一个标头 object.h #ifndef OBJECT_H#define OBJECT_H类Object {上市:int run();};#万一 和实现 object.cpp #include"object.h"int Object :: run(){int a ..
发布时间:2021-04-22 18:40:57 其他开发

如何在Clang中以字符串形式获取函数定义/签名?

假设我拥有CXCursor左右,如何使用Clang/Libclang作为字符串获取函数的签名(或至少是整个定义?)? 我认为可以通过使用游标的范围来以某种方式获得定义,但是我真的不知道如何使用(使用什么函数). 解决方案 您可以使用此简单代码获取函数的原型(名称,返回类型,参数数量和arguments [name,data type]). string Convert(const ..
发布时间:2020-06-29 19:57:52 其他开发

如何使用libclang检索标准函数名称?

我需要解析一个C ++代码文件,并使用完全限定的名称查找其中的所有函数调用.我使用libclang的Python绑定是因为,即使文档很稀疏,这似乎比编写自己的C ++解析器还容易. 示例C ++代码: namespace a { namespace b { class Thing { public: Thing(); void DoSomet ..
发布时间:2020-06-29 19:57:47 C/C++开发

Windows上的python libclang绑定无法从崇高的文本初始化翻译单元

简短说明:使用libclang自动完成代码不适用于Sublime Text 3随附的python. 详细信息: Github 本质上,存在一个脚本,该脚本使用稍作更改的cindex.py(与python 3和clang 3.8兼容),并从测试源文件构建转换单元.然后重新解析并尝试完成. 该脚本在使用Powershell中的Python 3.3.5时可以按预期工作. 当放入S ..
发布时间:2020-06-29 19:57:20 Python

libclang获取原始值

如何使用libclang获取原始文字的值? 例如,如果我有一个游标类型为CXCursor_IntegerLiteral的CXCursor,那么如何提取文字值. 更新: 使用libclang遇到了很多问题.我强烈建议完全避免使用它,而应使用clang提供的C ++接口. C ++界面具有很高的可用性,并且有很好的文档记录: http://clang.llvm.org/doxygen ..
发布时间:2020-06-29 19:57:13 C/C++开发

如何使用libclang c ++中的RecursiveASTVisitor提取注释并与声明匹配?

我正在编写一个实用程序,该实用程序应该解析C ++(和C)头文件,提取结构,枚举,字段等,并根据提取的信息以其他语言生成代码.我决定为此使用libclang. 我正在使用RecursiveASTVisitor,看来我能够提取我需要的所有信息,但注释除外. 我想读取每条声明(字段,结构,类,枚举)上方的注释,并在生成其他语言的代码时添加其文本. 问题是我看到的所有使用注释的示例都使 ..
发布时间:2020-06-29 19:57:04 C/C++开发

libclang解析多个文件时可以共享工作吗?

如果我在一个大型项目中有多个文件,所有这些文件共享大量包含的头文件,是否有任何方法可以共享头文件的解析工作?我曾希望创建一个索引,然后向其中添加多个translationUnits可能会导致某些工作被共享-但是,即使是沿着(pseudocode)的代码进行编码, index = clang_createIndex(); clang_parseTranslationUnit(index, "m ..
发布时间:2020-06-29 19:57:01 其他开发

如何在STL中使用libclang?

我正在尝试使用libclang解析库,但我遇到了一个非常简单的问题:如何使用STL对其进行配置? 目前,它无法解析翻译单元,因为找不到. 这就是我尝试过的: char *args[] = {"-x", "c++", "-Ic:/my/library/includes", "-IG:/Prog/libcxx-3.4/include"}; clang_parseTransl ..
发布时间:2020-05-09 22:16:30 C/C++开发

LLVM cmake安装找不到DIA SDK

我正在尝试使用cmake构建LLVM安装,但它给我有关LLVM_ENABLE_DIA_SDK的错误.在没有PDB的情况下,我设法构建了LLVM,但是我试图从libclang开始,所以我需要PDB. Cmake给我以下错误: cmake/config-ix.cmake上的CMake错误:482(消息): 找不到DIA SDK.如果您同时安装了VS 2012和2013,则可以 需要卸载前者, ..
发布时间:2020-05-02 11:02:12 C/C++开发

使用libclang进行功能边界识别

我正在学习使用我的目标是解析C ++文件并为这些文件中存在的函数标识函数边界.我期望建立这种形式的python字典: {:(, ), ...} 为此,我能够获得函数名称(对于CursorKind.FUNCTION_DECL或CursorKind.CXX_METHOD类型的AST节点使用cursor.spe ..
发布时间:2020-05-02 11:01:51 Python

Libclang API获取在其他文件中定义的函数定义

假设我有两个文件main.c和func.c func.c是从main.c的main函数调用的.通常,我将生成main.o和func.o,链接器将找到func的定义并将其与main .c 中的调用相关联 现在,我想通过libclang API做同样的事情.这是我正在制作的Doxygen类型代码浏览实用程序.我能够解析这两个文件.从这里开始,我不知道如何进行. 我应该生成* .o文件并用clang ..
发布时间:2020-05-02 10:57:45 其他开发

关于libclang的任何教程吗?

我一直在寻找一些易于理解的libclang指南.我在这里或其他论坛上看到过一些话题,但是唯一推荐的信息来源是libclang source/doxygen doc,vim的clang完整插件或所以我的问题是,除了上面提到的那些教程之外,还有没有其他易于理解的教程了?也许某些高级libclang用户可以编写一个:) 注意:我对编写clang插件不感兴趣. 解决方案 我写了 ..
发布时间:2020-05-02 10:55:53 其他开发

如何使用clang API解析函数指针的typedef以获取函数指针名称?

我目前正在使用clang C API构建一个用于C ++代码的解析器。解析器将处理一个头文件并为其生成一个定义和缺失符号的列表(它忽略包含指令,因此它将严格解析头的内容)。我的问题是,如果我有一个 typedef 为一个函数指针,接受一个未定义类型的参数,如: typedef SOME_TYPE(* funcPtrName)(SOME_UNDEF_TYPE x); AS ..
发布时间:2016-11-22 23:38:53 C/C++开发