手動編譯shogun,若是按照直接按照官網上的步驟進行,會踩很是多的坑,下面分享一下在下的編譯過程,但願能爲閣下提供些許借鑑。python
1. git clone https://github.com/shogun-toolbox/shogun.gitlinux
這裏是從服務器上下載shogun的工具包。Git命令若是沒有安裝,能夠經過apt-get install git進行安裝。下載完成後,當前目錄下會有一個名爲shogun的文件夾。c++
2. cd shogun
git
這與官網的第二步不一樣,由於若是按照官網所述的步驟,第二步會報錯。
github
3. git submodule update --init
服務器
4. mkdir build
工具
5. cd build
ui
6. cmake -DPYTHON_INCLUDE_DIR=/usr/include/python3.5 \code
-DPYTHON_LIBRARY=/usr/lib/python3.5/config-x86_64-linux-gnu/libpython3.5.so \get
-DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \
-DPYTHON_PACKAGES_PATH=/usr/local/lib/python3.5/site-packages \
-BUILD_META_EXAMPLES=ON \
-DUSE_SVMLIGHT=ON \
-DINTERFACE_PYTHON=ON ..
通常這一步會報錯,稱找不到依賴swig和ccache,ccache能夠直接經過apt-get install ccache進行安裝,swig雖然也能夠經過此種方式安裝,但安裝的是swig 3.0.8,而shogun要求的是swig 3.0.12,因此須要手動安裝。在手動安裝swig 3.0.12以前,記得將其餘swig版本刪除哦,否則依然會報相同的錯誤呢!若是swig和ccache都安裝正確,但cmake還報錯或者報警告的話,說明cmake版本有問題,shogun項目自己使用的cmake3.2。
7. make
我在make過程當中也報錯,緣由主要是變量的定義與聲明,其本質緣由是c++編譯器的問題。由於linux系統自帶的c++編譯器通常都是4.8版本的,但shogun項目中不少代碼用到了5.0以上的特性,因此纔會報錯。這時只須要將c++編譯器更新到5.0以上便可解決問題。
8. make install
9. 設置環境變量(修改/etc/profile文件)
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PYTHONPATH=/usr/local/lib/python3.5/site-packages/:$PYTHONPATH
這裏容易出錯的地方就是,官網上介紹設置變量LD_LIBRARY_PATH和PYTHONPATH時,路徑中帶上了文件libshogun.so和shogun.py, 但這會致使該環境變量失效的,由於這兩個變量應該是一個文件夾路徑而不是文件。