user763410
user763410

Reputation: 562

Libclang API to get function definitions defined in a different file

Suppose I have two files main.c and func.c func.c is called from main.c's main function. Normally, I would generate main.o and func.o and linker would find definition of func and tie it up to it's call in main .c

Now, I want to do same thing through libclang APIs. This is for a Doxygen type code browsing utility I am making. I am able to parse the two files. From here, I don't know how to proceed. Should I generate *.o files and make clang link them?

Thanks, I hope I am clear in asking the question

Upvotes: 1

Views: 1367

Answers (1)

No, there is no need for actually compiling your code to object files.

The link between symbols in both translation units can be established using USR (Unified Symbol Resolution). When you find an interesting place in the AST of a translation unit (represented by a CXCursor in libclang), call clang_getCursorUSR() to get the associated USR.

If two CXCursor have the same USR, even in two different translation units, they are associated to the same symbol.

Upvotes: 3

Related Questions