gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:22 25 4
gpt4 key购买 nike

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

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

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

最佳答案

不,没有必要将您的代码实际编译为目标文件。

可以使用 USR(统一符号解析)建立两个翻译单元中符号之间的链接。当您在翻译单元(由 libclang 中的 CXCursor 表示)的 AST 中找到一个有趣的位置时,调用 clang_getCursorUSR() 以获取关联的 USR。

如果两个 CXCursor 具有相同的 USR,即使在两个不同的翻译单元中,它们也关联到相同的符号。

关于c - Libclang API 获取定义在不同文件中的函数定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18037538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com