【问题标题】:Why is Libclang unable to get definition of a function defined in a header file?为什么 Libclang 无法获取头文件中定义的函数的定义?
【发布时间】:2020-05-22 09:16:44
【问题描述】:

我正在使用 LibClang 列出所有函数调用及其相应的定义。 以下是执行此操作的 python 脚本:

def traverse(node):
   if node.kind == CALL_EXPR:
       print(node.displayname, node.get_defintion()) 
   for c in node.get_children():
       traverse(c)

以下是我运行它的 cpp 代码:

#include<math.h> 
int main()
{
   float n = sqrt(3.0);
}

现在,对于引用 sqrt 的 CXcursor,我得到输出 sqrt ,无

有人能解释一下为什么找不到函数的定义吗?

【问题讨论】:

  • 注意:函数在头文件中声明,但在头文件中没有定义。有没有node.get_declaration函数?

标签: python c++ parsing clang libclang


【解决方案1】:

使用 -I path/to/header/directory 参数运行您的 libclang 解析方法(无论您使用哪个)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多