clang.cindex.LibclangError“未定义的符号clang_CXXRecord_isAbstract”

时间:2018-02-07 12:19:34

标签: python c++ linux llvm-clang

我正在尝试使用下一个命令执行clang 5.0,但它不起作用..我输入:

import clang

import clang.cindex

clang.cindex.Config.set_library_file('/usr/lib/x86_64-linux-gnu/libclang-5.0.so.1')

id = clang.cindex.Index.create()

我收到以下错误:

  

clang.cindex.LibclangError:/usr/lib/x86_64-linux-gnu/libclang-5.0.so.1:undefined symbol:clang_CXXRecord_isAbstract。请确保您的python绑定与您的libclang.so版本兼容。

我正在使用clang-5.0和https://github.com/llvm-mirror/clang

的绑定

1 个答案:

答案 0 :(得分:4)

<强>窗

我现在还没有对此进行测试,但一个月前它对我有用。

  1. 从github下载src code并转到/ bindings / python /并复制clang目录并将其粘贴到您的python站点包dir 或(尝试两者) pip install clang-5

  2. 下载llvm binares。如果你有python-32bit然后安装llvm 32bit !!否则它不会工作。对于64位python安装64位二进制文​​件

  3. 在你的python程序中只有import clang.cindex as cl并在你的代码中执行cl.Config.set_library_file("your/path/to/libclang.dll") libclang.dll应该在你的clang / bin安装目录中
  4. <强>的Linux

    现在运行它,所以它对我有用

    1. pip3 install clang-5

    2. 来自您的包管理器的
    3. 获取llvm-clang或llvm-clang-32bit 取决于你的python安装

    4. 在你的python程序中只有import clang.cindex as cl并在你的代码中执行cl.Config.set_library_file("your/path/to/libclang.so")

    5. 根据我的经验,libclang.so应位于/ usr / lib32 /或usr / lib64 /

      希望这有帮助!