有 libclang 的教程吗? [关闭]

2024-02-19

我一直在寻找一些易于理解的 libclang 指南。我在这里或其他论坛上看到了一些帖子,但唯一推荐的信息来源是 libclang 源/doxygen 文档、vim 的 clang 完整插件或超越编译器的思考 http://devimages.apple.com/llvm/videos/Libclang.mov推介会。然而,它们都没有提供实际使用的信息。我对实现代码完成/语法突出显示感兴趣(也许是一些基本的重构/解析)。

所以我的问题是,除了上面提到的那些之外,还有什么容易理解的教程吗?也许一些高级 libclang 用户可以写一个:)

注意:我对为 clang 编写插件不感兴趣。


我写过本教程 http://eli.thegreenplace.net/2011/07/03/parsing-c-in-python-with-clang/不久前,关于使用 Python 绑定到 libclang。由于 Python 绑定非常轻量级,因此本教程绝对可以用于学习“vanilla”C libclang。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

有 libclang 的教程吗? [关闭] 的相关文章

  • 为什么 AMD GCN 使用非零 NULL?

    这次提交 https reviews llvm org rL289252 says In amdgcn https en wikipedia org wiki Graphics Core Next目标 全局 常量和通用地址空间中的空指针取值
  • 使用 Emscripten 导出所有函数

    我想通过 JavaScript 以简单的方式使用 C 源代码 仅使用免费 自由软件 所以 Emscripten 似乎是一个不错的选择 https kripken github io emscripten site docs porting
  • 链接不支持异常处理的代码 (C++/LLVM)

    我正在尝试使用 llvm 作为我的软件的代码生成后端 并且刚刚意识到 llvm 的编译不支持 C 异常处理 为了提高效率 然而 在我的软件中 我广泛使用异常处理 如果我将所有回调函数包装在 try catch blocks 中 这样就不需要
  • LLVM 的 amd64 输出中向量的对齐

    我正在尝试通过 LLVM 在结构内部使用向量 我的结构有以下 C 定义 struct Foo uint32 t len uint32 t data 32 attribute aligned 16 下面是一些 LLVM 代码 用于将 42 添
  • 如何使用 ARC 处理“require(..., bail)”语句?

    我正在查看一些示例代码Apple 示例代码中的 Square Cam http developer apple com library ios samplecode SquareCam Introduction Intro html 我想使
  • 统一不同 clang-format 版本的输出

    我们尝试使用 clang format 工具稍微美化我们的代码 为了在我们所做的所有机器上获得统一的结果clang format style llvm dump config 已进行了一些调整并存储到 repo 中 问题是 clang 10
  • 如何嵌入LLVM?

    LLVM 核心项目包括 编译器 将源代码转换为 LLVM IR VM 执行编译后的IR代码 如何将 VM 嵌入到 C 应用程序中 LLVM 实际上是一个可以链接到的库的集合 因此嵌入起来非常容易 更多时候 LLVM 会获取您生成的 IR 并
  • 使用带有空格的 CMake 的 include_directories 命令

    我正在使用 CMake 来构建我的项目 并且有以下行 include directories LLVM INCLUDE DIRS 评估后LLVM INCLUDE DIRS 评估为 include directories C Program
  • 如何在 Mac 上使用 Emscripten emcc 和 make 时包含 ncurses

    我正在尝试构建一个项目 即 Angband 的源代码 http rephial org downloads 3 3 angband v3 3 2 tar gz http rephial org downloads 3 3 angband v
  • 是否可以在 LLVM IR 代码中指定十六进制数?

    例如 error floating point constant invalid for type 3 and i8 0x80 2 从扫描的红外参考手册 http llvm org docs LangRef html simple cons
  • 使用 LLVM 内联特定函数调用

    给定一个llvm CallInst 我如何告诉内联器内联这个特定的调用 我可以将目标函数标记为AlwaysInline这将内联调用 但它也会内联每个调用 也许有某种方法可以在我发出特定调用时调用内联函数 内联基本块内的所有调用也可以 您可以
  • 如何编译LLVM Kaleidscope教程?

    我之前一直在 C 中使用 LLVM 其中包含一个 Nuget LLVM 库 我转向 C 并尝试遵循万花筒教程 https llvm org docs tutorial LangImpl03 html 不幸的是我不知道如何编译它 我保存了第三
  • 每次升级 Xcode 时,我都会遇到安装了 Brew 的 GCC 的链接器错误

    因此 我升级到 Mavericks 以及最新版本的 Xcode 5 02 并且正如预期的那样 无法编译任何包含 C 扩展的新 Ruby gem 这种情况尤其发生在我自己的项目 NMatrix 中 其中包含 C 和 C 代码 我重新安装了 X
  • 如何使用自定义 llc 编译 Rust 程序?

    我有一个自定义 LLVM 后端 并且想为该自定义 nostd 目标交叉编译 Rust 我想分两步编译 Rust 程序 Using rustc生成 LLVM IR 用我自己的opt and llc将 LLVM IR 转换为机器代码 我尝试使用
  • 字节码和位码有什么区别[重复]

    这个问题在这里已经有答案了 可能的重复 LLVM 和 java 字节码有什么区别 https stackoverflow com questions 454720 what are the differences between llvm
  • LLVM cpp 后端,它会取代 c 后端吗?

    我的问题是关于 CPP 后端 它与 C 后端的用途相同吗 C 后端是我最喜欢的 LLVM 功能之一 我对它被删除感到非常沮丧 真正的区别是什么 我非常感谢任何帮助 参考 LLVM 3 1 发行说明 http llvm org release
  • 如何在 LLVM IR 中使用 RISC-V Vector (RVV) 指令?

    In 这个演示文稿 https llvm org devmtg 2019 04 slides TechTalk Kruppe Espasa RISC V Vectors and LLVM pdfKruppe 和 Espasa 概述了 RIS
  • 如何从 LLVM 指令获取文件名和目录?

    我需要在 llvm 过程中提取目录和文件名 当前版本的 llvm 已移动getFilename and getDirectory from DebugLoc to DebugInfoMetadata 我找不到班级成员getFilename直
  • 无法使用 lld-link.exe 链接 C 运行时库 (libcmt.lib) (Windows)

    我正在使用 LLVM 编写一种语言 我想避免打包 clang 并简单地使用 LLVM 工具 例如 lld lld link 我一直在尝试调用printf来自我的简单 IR 代码的函数 testinput ll ModuleID Test2
  • 如何在 LLVM 中实现字符串数据类型?

    我一直在看LLVM http llvm org 最近 我发现它是一个非常有趣的架构 然而 浏览教程和参考材料 我看不到任何关于如何实现的示例string http en wikipedia org wiki String computer

随机推荐

  • 如何在Android上安装JavaCV并使用FrameGrabber

    有人可以告诉我我哪里做错了吗 这些是我遵循的步骤 从 android 开发者网站下载 adt bundle windows 创建一个新项目和一个 libs armeabi 文件夹 将 javacv android arm jar openc
  • LINQ 在字符串数组列表中搜索特定字符串

    我有一个字符串数组列表 List
  • C++ 中的简单事件系统

    我正在为我的游戏引擎设计一个简单的事件系统 我想实现以下事件调度程序接口 Create event dispatcher Dispatcher dispatcher Create objects b and c Created object
  • 使用音频队列处理中断

    我正在开发一个音频流媒体 并声明了一个中断侦听器 以在发生中断 例如来电或短信 时保存歌曲的状态 这是相关代码 在我的 AppDelegate 中 我有这个 AudioSessionInitialize NULL NULL interrup
  • 类型错误:不可散列的类型:'dict'

    这段代码给了我一个错误 TypeError unhashable type dict 谁能向我解释一下解决方案是什么 negids movie reviews fileids neg def word feats words return
  • 如何在 Android 中读取和写入 csv 文件?

    我想将 8 个整数存储到 csv 文件中 文件名将作为 EditText 的输入 并在需要时检索它们 要获取文件名 您可以使用以下命令 EditText fileNameEdit EditText getActivity findViewB
  • 增加 GO 中的堆大小

    有没有办法指示 GO 运行时使用更大的堆 我在跑步GO 1 5 我的 GO 进程目前在 GC 上花费了 34 的时间 但它只使用了 1 3 的可用系统内存 I know ulimit可用于限制最大堆大小 我已将 ulimit 设置为 16G
  • 我可以在我的 Azure 管道中使用 2 个代理池吗?

    我有一个自托管代理 它用作一种部署代理 我们软件的所有发行版本均由该代理构建 然后复制到网络位置 问题 有没有办法可以在管道中同时利用 azure pipelines Microsoft 托管池和我自己的自托管池中的代理 EDIT 不幸的是
  • 从脚本并行 nmap 数千个子网的最佳方法是什么?

    为了清点 A 类网络部分中的端口 我使用 nmap 将其扫描为数千个 C 类网络 我使用并行方式同时运行 32 个子网扫描作业 脚本的最小化版本 while read subnet do echo nmap Pn p tcpport sub
  • Azure 媒体服务将作业回调编码为 URL

    仅使用 REST API 我就可以将文件从本地计算机上传到 Azure 媒体服务并启动编码作业 然后我需要轮询作业的状态以查看它何时完成 但是 我真正想要的是 Azure 媒体服务在完成后向我的回调 URL 发送请求 有办法做到这一点吗 查
  • 在 laravel 4 中测试过滤器

    我是 Laravel 的新手 我正在尝试测试身份验证是否适用于我的网站 并且我想在测试用例中测试身份验证过程 我创建一个内存中的 sqlite 数据库 创建一个新用户并使用 gt save eloquent 的方法将其存储在数据库中 我设置
  • ALSA 记录 - 了解内存映射

    我尝试使用 ALSA 从 USB 音频设备获取输入并将其作为一系列内容写入磁盘signed short价值观 我最终得到的是看似有效的数据块 其中散布着大块的零 我猜测我的缓冲区设置不正确并且没有正确使用内存映射 我正在尝试什么 采样率 8
  • Autofac 注册程序集类型

    在 Castle 中 我曾经执行以下操作来注册来自不同程序集的类型 Classes FromAssemblyNamed MyServer DAL Where type gt type Name EndsWith Repository Wit
  • 重叠绝对定位的内容

    我遇到了一些困难这一页 http louiswalch com beta t urs 它几乎可以正常工作 红色框应位于窗口的中心 h v 作品 黄色框应贴在窗口底部 作品 当窗口小于 400 像素高时 应出现滚动条 并且黄色框应出现在滚动区
  • 按第二列中的时间戳合并多个日志文件

    我有同一天的多个日志文件 我想要做的是根据日志中的时间戳将它们合并为一个Perl script 日志 1 log 2014 06 02 21 54 38 805 INFO com HomeManeger Executor Thread 19
  • 我们怎么知道这是数组中的最后一个元素?

    我有以下代码 int array 5 1 0 1 0 0 int i for i 0 i lt 5 i if array i 1 printf found one n 我们怎么知道第二个1 in the array是最后一个1我们发现 我的
  • 查找每个点坐标属于哪个国家/地区[重复]

    这个问题在这里已经有答案了 我有一个带有纬度 经度坐标的数据框 head COORD LAT LON 1 69 34 16 17 2 69 20 17 92 3 69 59 17 87 4 69 17 18 52 5 69 42 18 95
  • 多选 PHP

  • 用 Spirit Qi 解析成 std​​::vector,出现段错误或断言失败

    我使用 Spirit Qi 作为解析器 将数学表达式解析为表达式树 我跟踪诸如解析时遇到的符号类型之类的事情 并且必须在我正在解析的文本中声明这些符号 也就是说 我正在解析贝尔蒂尼输入文件 http bertini nd edu Berti
  • 有 libclang 的教程吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在寻找一些易于理解的 libclang 指南 我在这里或其他论坛上看到了一些帖子 但唯一推荐的信