问题标签 [libclang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1200 浏览

c++ - 无法将 libclang 与 Qt 一起使用

当我尝试在 Qt 应用程序中使用 libclang 时遇到了一个奇怪的错误。

测试.cpp

test.pro

Shell 命令和输出:

如果我在不使用 qmake 的情况下手动运行 g++,我会得到同样的错误:

  • 如果我注释该w.show();行,即使它进入主循环而没有显示窗口,程序也会编译并运行。
  • 如果我注释CXIndex index = clang_createIndex(0, 0);Q_UNUSED(index)行,程序将编译并运行。它进入主循环,窗口可见。
  • 我也用clang编译了这个,我得到了同样的错误信息。
  • 我在网上搜索,只发现这个结果带有类似的错误消息,但我不知道它是否以及如何帮助我:http ://comments.gmane.org/gmane.comp.compilers.llvm.devel/34647 .

我正在使用 Qt 5.1 和 ArchLinux,我clang安装了包含 libclang 头文件和文件 /usr/lib/libclang.so 和 /usr/lib/libclang.a 的包(版本 3.3)。

该程序不起作用的原因是什么,我该如何解决?


更新:我找到了这个页面。跑步LIBGL_ALWAYS_INDIRECT=1 ./test效果很好,但我想要的不止这些。我不应该设置那个环境变量来运行我的程序。

0 投票
2 回答
14150 浏览

clang - 在 mac 10.6.8 上安装 libc++

我目前正在尝试在我的 Mac 上安装 lib++.1.dylib。我按照这里的说明http://libcxx.llvm.org/下载了源代码。当我尝试时./buildit遇到clang++: command not found错误。

所以我去了这里http://clang.llvm.org/get_started.html并安装了clang。不幸的是,现在当我重新安装 libcxx 时,我仍然收到 clang++ 错误。Clang 本身clang --help的工作原理是打开帮助菜单。

安装 Xcode 不是一个选项,因为我正在运行 10.6.8。

我该如何继续,即让 clang++ 命令工作?

0 投票
1 回答
1113 浏览

c - Libclang API 用于获取在不同文件中定义的函数定义

假设我有两个文件 main.c 和 func.c func.c 是从 main.c 的 main 函数调用的。通常,我会生成 main.o 和 func.o 并且链接器会找到 func 的定义并将其绑定到它在 main .c 中的调用

现在,我想通过 libclang API 做同样的事情。这是我正在制作的 Doxygen 类型代码浏览实用程序。我能够解析这两个文件。从这里开始,我不知道如何进行。我应该生成 *.o 文件并让 clang 链接它们吗?

谢谢,我希望我问的问题很清楚

0 投票
1 回答
15568 浏览

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

我在 Windows 上使用 64 位 Vim,Haroogan 的这个版本

我正在尝试使用clang_complete,所以我在这里libclang.dll使用了库并正确设置了我的库。被发现。vimrclibclang.dll

但是,当我打开*.cpp文件时,我现在收到一条消息:

libclang找不到内置包含这将导致缓慢的完成代码

但我根本没有完成......

我在构建我使用的 Vim 版本的人那里找到了这篇文章,但是没有明确的指示说明该怎么做。有人可以帮忙吗?

更新

这是我所做的:

  1. 使用 Vim YouCompleteMe for Windows
  2. 为 Windows 使用LLVM
  3. 从中取出 liclang.dll 并将其卡在 YCM python 目录中
  4. 拿了.ycm_extra_conf.py并将其与我的 cpp 文件一起使用

它几乎可以工作(我没有任何错误消息),但我仍然得到: 没有汽车

0 投票
1 回答
219 浏览

objective-c - 如何使用 libclang 查找目标 c 方法实现的行

我想获取目标 c 方法开始执行的行号。

输出应该是:2,6

我怎样才能用libclang实现它。

我不想为此使用正则表达式,因为它就足够了。

0 投票
0 回答
514 浏览

function - 使用 libclang 评估函数宏和表达式

是否可以使用 libclang 评估表达式和函数宏?

像这样的东西(表达式):

或者带有函数宏的东西:

我可以标记宏或获取其原始文本,但我看不到任何评估它的方法。

0 投票
2 回答
1742 浏览

objective-c - 如何跳过包括使用 libclang?

我正在使用 libclang 来解析一个目标 c 源代码文件。以下代码查找所有 Objective-C 实例方法声明,但它也查找包含中的声明:

如何跳过来自标题包含的所有内容?我只对源文件中我自己的 Objective-C 实例方法声明感兴趣,而不对任何包含感兴趣。

例如,不应包括以下内容

0 投票
3 回答
4018 浏览

c++ - 使用 python libclang 检索评论

在以下头文件中,我想获得+reflect对类和成员变量的相应注释:

使用 libclang 的 python 绑定和以下脚本:

给我这个输出:

问题是缺少评论。它们被预处理器剥离了吗?有什么办法可以防止这种情况发生吗?

0 投票
1 回答
4962 浏览

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

我正在使用 libclang 的 python 绑定,但我认为这个问题是由 libclang 而不是 python 绑定引起的。

我有一个标题object.h

和一个实现object.cpp

如果我访问 的翻译单元的object.hAST,最后一个 AST 节点就是VAR_DECL class Object这样。它不会访问public:...部分。如果我使用 clang 直接检查语法会抱怨我的头文件是错误的。

如果我使用 clang 转储 ast of object.cpp,则不会出现该错误。

似乎clang结合object.h object.cpp在一起然后进行解析。如果是这样,我如何获得Object第三行的 ast 节点object.cpp int Object::run() {?有一个 ast 节点吗?

它也让我很困惑,当我访问run()方法时object.cpp,它会说当前位置在,object.cpp但范围在object.h。程度究竟是什么意思?除了 libclang API 文档之外还有更简单的教程文档吗?

0 投票
1 回答
2282 浏览

c - LibClang:用另一个头文件的定义解析一个头文件?

我正在使用最新的 LibClang 来解析一些 C 头文件。我处理的代码来自 CXUnsavedFile(它都是动态生成的,磁盘上没有任何内容)。例如:

FileA.h 包含:

FileB.h 包含:

使用以下代码片段解析 fileA.h 时:

我收到错误“ field has incomplete type 'struct STRUCT_B'”,这是有道理的,因为我没有包含 fileB.h 来定义结构 STRUCT_B。

添加“#include <fileB.h>”不起作用(fatal error: 'fileB.h' file not found)。

当另一个 CXUnsavedFile fileB.h 中存在一个或多个需要的定义时,如何让解析 fileA.h 工作?