2013-07-15 39 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

太好了。謝謝。 –