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

mvs*_*vsa 1 c++ python 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()
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

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

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

小智 7

视窗

我现在还没有测试过这个,但一个月前它对我有用。

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

  2. 下载llvm 二进制文件。如果你有 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 安装目录中

Linux

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

  1. pip3 install clang-5

  2. 从你的包管理器获取 llvm-clang 或 llvm-clang-32bit,具体取决于你的 python 安装

  3. 在你的 python 程序中import clang.cindex as cl和你的代码中做cl.Config.set_library_file("your/path/to/libclang.so")

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

希望这可以帮助!