1 个不稳定版本
使用旧的 Rust 2015
| 0.24.0 | 2018年8月24日 |
|---|
#7 在 #libclang
在 2 个 Crates 中使用(通过 rustkit_bindgen)
135KB
2.5K SLoC
rustkit-clang-sys
这是 RustKit 的临时分支 clang-sys。不要使用此分支!
Rust 对 libclang 的绑定。
如果你对这些绑定的 Rust 包装器感兴趣,请参阅 clang-rs。
支持稳定、测试和夜间 Rust 频道。
在 Apache License 2.0 下发布。
支持版本
要针对 libclang 的版本,启用以下 Cargo 功能之一
clang_3_5- 需要libclang3.5 或更高版本(文档)clang_3_6- 需要libclang3.6 或更高版本(文档)clang_3_7- 需要libclang3.7 或更高版本(文档)clang_3_8- 需要libclang3.8 或更高版本(文档)clang_3_9- 需要libclang3.9 或更高版本(文档)clang_4_0- 需要libclang4.0 或更高版本(文档)clang_5_0- 需要libclang5.0 或更高版本(文档)clang_6_0- 需要libclang6.0 或更高版本(文档)clang_6_0- 需要libclang7.0 或更高版本(文档)clang_8_0- 需要libclang8.0 或更高版本(《文档》)
如果您没有启用这些功能之一,默认情况下将提供 libclang 3.5 提供的 API。
依赖项
默认情况下,此 crate 将尝试动态链接到 libclang。在这种情况下,此 crate 依赖于 libclang 共享库(在 Linux 上为 libclang.so,在 OS X 上为 libclang.dylib,在 Windows 上为 libclang.dll)。如果您想静态链接到 libclang,请启用 static Cargo 功能。在这种情况下,此 crate 依赖于 LLVM 和 Clang 静态库。如果您想在编译时而不是运行时链接到 libclang,请启用 runtime Cargo 功能。
这些库可以作为 Clang 的一部分安装,或者从此处下载。
注意:此 crate 支持查找 libclang.so 的版本化实例(例如,libclang.so.3.9 或 libclang-3.9.so)。在存在多个实例可供选择的情况下,此 crate 将首先选择无版本实例,然后是版本最短且版本最高的实例。例如,以下 libclang.so 实例按优先级降序排列:
libclang.solibclang.so.4libclang.so.4.0libclang.so.3libclang.so.3.9
注意:LLVM 和 Clang 3.8 及更高版本的下载不包括 libclang.a 静态库。这意味着除非您从源代码构建它,否则您不能静态链接到这些版本的 libclang。
环境变量
以下环境变量(如果已设置)将被此 crate 用于查找所需的库和可执行文件
LLVM_CONFIG_PATH(编译时) - 提供一个指向llvm-config可执行文件的路径LIBCLANG_PATH(编译时) - 提供一个包含libclang共享库的目录的路径LIBCLANG_STATIC_PATH(编译时) - 提供一个包含 LLVM 和 Clang 静态库的目录的路径CLANG_PATH(运行时) - 提供指向clang可执行文件的路径
链接
动态
首先,如果设置了 LIBCLANG_PATH 环境变量,将在该变量提供的目录中搜索 libclang 共享库。如果失败,将搜索由 llvm-config --libdir 返回的目录。如果这也失败,将搜索 LD_LIBRARY_PATH 环境变量中的目录。如果所有这些方法都失败,将搜索一系列可能的目录(例如,Linux 上的 /usr/local/lib)。
在Linux上,运行动态链接到 libclang 的可执行文件可能需要您将 libclang.so 的路径添加到 LD_LIBRARY_PATH 环境变量中。在OS X上也是如此,但使用的是 DYLD_LIBRARY_PATH 环境变量。
在Windows上,运行动态链接到 libclang 的可执行文件需要确保可执行文件在运行时可以找到 libclang.dll。有关更多信息,请参阅此处。
静态
对于静态链接,llvm-config 的可用性是必须的。请确保在系统路径中可以找到此可执行文件的实例,或者设置 LLVM_CONFIG_PATH 环境变量。所需的 LLVM 和 Clang 静态库将按照与查找共享库相同的方式进行搜索,只是使用 LIBCLANG_STATIC_PATH 环境变量代替 LIBCLANG_PATH 环境变量。
运行时
使用 clang_sys::load 函数来加载用于在调用线程中使用的 libclang 共享库。使用 clang_sys::unload 函数将卸载 libclang 共享库。与在编译时动态链接 libclang 时搜索的方式相同,clang_sys::load 将搜索 libclang 共享库。
依赖项
~53–285KB