0

我一直在尝试在虚拟环境中安装 numba。Numba 需要 llvm 以及似乎是 llvmpy 的 Python 包装器。我使用以下步骤成功安装了它:

wget http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz
tar zxvf llvm-3.2.src.tar.gz
cd llvm-3.2.src
./configure --enable-optimized --prefix=/opt
REQUIRES_RTTI=1 make
make check-all
sudo REQUIRES_RTTI=1 make install

git clone git://github.com/llvmpy/llvmpy.git
cd llvmpy
sudo LLVM_CONFIG_PATH=/opt/bin/llvm-config /path/to/environment/bin/python setup.py install

python -c "import llvm; llvm.test()"

但是,我想知道正确的程序是什么。例如,在 and 行REQUIRES_RTTI=1 makesudo REQUIRES_RTTI=1 make install,变量 REQUIRES_RTTI 被重复。有必要吗?

根据 numba 的文档,它建议执行REQUIRES_RTTI=1 make install和 llvmpy 建议REQUIRES_RTTI=1 make,所以略有不同。我真的不知道每个步骤在做什么,所以我希望能对正在发生的事情进行一般性解释,以及所有这些步骤是否都是绝对必要的。

此外,什么是make check-all?我已经看到它在与 llvm 相关的问题中特别相关,但我不知道它的目的是什么。

llvmpy 文档中的另一个建议是使用不同的目录(--prefix)进行安装。为什么这是推荐的方法?

非常感谢

4

1 回答 1

1

以下几行

REQUIRES_RTTI=1 make
sudo REQUIRES_RTTI=1 make install

使用设置被调用进程环境的方式,不修改被调用的环境(如export REQUIRES_RTTI=1的情况);来自bash 手册

任何简单命令或函数的环境都可以通过在其前面加上参数分配来临时扩充。这些赋值语句只影响该命令看到的环境。

建议使用此设置,因为来自LLVM 文档

在运行 make 时将 RE​​QUIRES_RTTI=1 添加到您的环境以重新启用它。这将允许用户在启用 RTTI 的情况下进行构建,并且仍然从 LLVM 类继承。

并且根据 llvmpy 文档,需要 RTTI。

因此,忘记使用“sudo”进行安装的“复杂性”和标准要求,这些步骤是标准的:

### generating makefile:
./configure --enable-optimized --prefix=/opt
### building core libraries (make without target is the same as "make all")
make
### check-all is a makefile target that is used to run regression tests (according to LLVM docs) 
make check-all
### installing the libraries to the place where other tools / libraries can find them:
make install
于 2013-07-16T20:45:45.377 回答