LLVM的Python绑定
项目描述
主页
版本
此软件包已与LLVM 3.3、Python 2.6、2.7、3.3和3.4进行测试。其他Python版本可能也可以工作。
快速入门
从 llvm.org 获取并提取LLVM 3.2源代码tar包。然后,在提取的目录中运行cd。
运行 ./configure --enable-optimized --prefix=LLVM_INSTALL_PATH。
注意:如果没有使用--enable-optimized标志,则会选择调试构建。除非您正在开发LLVM或llvmpy,否则建议使用此标志以减少构建时间和二进制文件大小。
注意:使用前缀来选择安装路径。建议将自定义构建与默认系统软件包分开。请将LLVM_INSTALL_PATH替换为您自己的路径。
运行 REQUIRES_RTTI=1 make install 以构建和安装。
注意:从LLVM 3.3开始,默认的构建配置已禁用C++ RTTI。然而,llvmpy需要RTTI。
注意:使用make -j2 install来启用并行构建。将2替换为您实际拥有的处理器数量。
获取llvm-py并安装它
$ git clone https://github.com/llvmpy/llvmpy.git $ cd llvmpy $ LLVM_CONFIG_PATH=LLVM_INSTALL_PATH/bin/llvm-config python setup.py install
运行测试
$ python -c "import llvm; llvm.test()"
请参阅‘http://www.llvmpy.org’处的文档以及‘test’下的示例。
常见构建问题
如果由于“undefined symbol: _ZTIN4llvm24PassRegistrationListenerE”无法导入llvmpy,那么是因为在构建LLVM时未启用RTTI。“_ZTIN4llvm24PassRegistrationListenerE”是PassRegistrationListener类的typeinfo。
LLVM3.3在64位Windows上ssize_t不匹配。从http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130701/180049.html获取补丁。
OSX 10.9 Mavericks默认使用libc++,但Anaconda分发的LLVM二进制文件链接的是旧的libstdc++。这两个二进制文件是不兼容的,但在编译/链接时没有警告。生成的二进制文件可能在运行时产生段错误(可能由于ABI不匹配)。解决方案:使用以下c++标志:-std=libstdc++ -mmacosx-version-min=10.6。
许可证
llvmpy在新的BSD许可证下分发,这与LLVM许可证本身相似。请参阅名为LICENSE的文件以获取完整的许可证文本。
项目详情
llvmpy-0.12.7.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 2f0f37aa7966d267a9ababe59f7f3c861a5b7b928205c9137275f7032f4132c7 |
|
MD5 | 7b12ec9b0080c492342c51594b308bd9 |
|
BLAKE2b-256 | 970f98b78dc8a5ec032e05179fc406622e550d5c571f036beca8f06a4752f648 |