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

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

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

谢谢,我希望我能清楚地提出这个问题

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

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

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