手动编译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, 但这会致使该环境变量失效的,由于这两个变量应该是一个文件夹路径而不是文件。