2013-07-15 72 views
0

我一直在尝试在虚拟环境中安装numba。 Numba需要llvm以及似乎是llvmpy的Python包装器。我成功地安装它使用following stepsNumba安装和“make check-all”

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()" 

不过,我想知道什么是正确的程序。例如,在行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)为什么推荐的方法?

非常感谢

回答

1

以下各行

REQUIRES_RTTI=1 make 
sudo REQUIRES_RTTI=1 make install 

使用设置的被叫处理的环境的方式,而无需修改飞翔距离的环境(如在出口REQUIRES_RTTI = 1的情况下);从bash manual

任何简单的命令或功能的环境可以通过与参数分配前缀它暂时增强 。这些赋值语句仅影响该命令看到的 环境。

此设置从LLVM docs因为推荐:

添加REQUIRES_RTTI = 1到环境 同时运行make重新启用它。这将允许用户在启用RTTI的情况下构建 ,并仍继承LLVM类。

根据llvmpy文档,RTTI是必需的。

所以,忘记这种“复杂性”和标准要求使用“命令”安装,具体步骤标准:

### 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 
+0

很好的解释。几个问题。我需要在make和make install中添加REQUIRES_RTTI = 1吗?那么那些只写“REQUIRES_RTTI = 1 make install”的指令是错误的? –

+0

@RobertSmith我看了一下makefile.rules,发现这个env。变种。只影响编译标志(即“make”阶段)。所以,很可能你是对的(这使得安装不需要设置REQUIRES_RTTI),但是如果不测试两种方法并进行比较,我不能100%确定。 – pmod

+0

太好了。谢谢。 –