手动编译shogun,如果按照直接按照官网上的步骤进行,会踩非常多的坑,下面分享一下在下的编译过程,希望能为阁下提供些许借鉴。

1. git clone https://github.com/shogun-toolbox/shogun.git

这里是从服务器上下载shogun的工具包。Git命令如果没有安装,可以通过apt-get install git进行安装。下载完成后,当前目录下会有一个名为shogun的文件夹。

2. cd shogun

这与官网的第二步不同,因为如果按照官网所述的步骤,第二步会报错。

3. git submodule update --init

4. mkdir build

5. cd build

6. cmake -DPYTHON_INCLUDE_DIR=/usr/include/python3.5 \

-DPYTHON_LIBRARY=/usr/lib/python3.5/config-x86_64-linux-gnu/libpython3.5.so \

-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文件)

  • 设置libshogun.so的路径,一般在/usr/local/lib/下,所以LD_LIBRARY_PATH设置为:
           export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  • 设置shogun.py的路径,一般在/usr/local/lib/python3.5/site-packages/下,所以PYTHONPATH设置为:
          export PYTHONPATH=/usr/local/lib/python3.5/site-packages/:$PYTHONPATH

这里容易出错的地方就是,官网上介绍设置变量LD_LIBRARY_PATH和PYTHONPATH时,路径中带上了文件libshogun.so和shogun.py, 但这会导致该环境变量失效的,因为这两个变量应该是一个文件夹路径而不是文件。

Linux下手动编译shogun的更多相关文章

  1. linux 下手动编译安装无线网卡驱动

    先参照 <本地yum源安装GCC >安装好gcc hp的笔记本上安装了CentOS6.3,没有安装无线网卡驱动,安装这个驱动,在Google上找了好多资料,最后终于解决了这个问题.在这里做 ...

  2. 如何在Linux下手动编译安装gcc

    如果可以通过apt来安装的话,尽量不要手工编译了,手工编译是最后的选择.用apt安装,只需要输入一条命令: sudo apt-get install gcc 手工编译的话,gcc和其他软件包存在如下的 ...

  3. 在linux下手动安装 apache, php, mysql--终极版

    在linux下手动安装 apache, php, mysql: 参考: http://www.cnblogs.com/lufangtao/archive/2012/12/30/2839679.html ...

  4. LINUX下文件编译

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  5. ACE-6.1.0 linux 下的编译与安装步骤

    ACE-6.1.0 linux 下的编译与安装步骤  引用至http://www.cnblogs.com/liangxiaxu/archive/2013/03/07/2948417.html 1.从  ...

  6. FFmpeg在Linux下安装编译过程

    转载请把头部出处链接和尾部二维码一起转载,本文出自:http://blog.csdn.net/hejjunlin/article/details/52402759 今天介绍下FFmpeg在Linux下 ...

  7. Linux下nginx编译安装教程和编译参数详解

    这篇文章主要介绍了Linux下nginx编译安装教程和编译参数详解,需要的朋友可以参考下 一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # y ...

  8. linux下将编译错误输出到一个文本文件

    linux下将编译错误输出到一个文本文件 command > filename 把把标准输出重定向到一个新文件中 command > > filename 把把标准输出重定向到一个文 ...

  9. Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程

    Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的gru ...

随机推荐

  1. Swagger结合mustache模板生成后台接口代码、以及前后台建模代码

    之前项目中使用的的thrift来建模,维护前后台模型以及rest接口,前台使用的是angular2: 但是使用thrift只能生成建模,后台的rest接口的Controller文件还是需要手动去写,一 ...

  2. jquery的优良继承方法

    说一下好处:这个封装函数可以可以实现子类继承父类原型对象里面的所有方法和属性,但是也留了第二条路,去继承父类构造函数的里面的东西. 两个参数分别是子类的构造函数,后面是父类构造函数 $.inherit ...

  3. JAVA获取计算机IP地址

    import java.net.InetAddress;import java.net.UnknownHostException;public class HuoQu {    public stat ...

  4. Vagrant Box下载缓慢解决方法

    box 搜索页面:https://atlas.hashicorp.com/boxes/search example:homestead 1,选中box和版本,先根据提示安装 2,获取box下载地址,采 ...

  5. DHCP的IP地址租约、释放

    转自:https://blog.csdn.net/wangdk789/article/details/27052505 当DHCP客户端获取到一个IP地址后,并不代表可以永久使用这个地址,而是有一个使 ...

  6. BZOJ 4195: [Noi2015]程序自动分析 并查集+离散化

    LUOGU 1955BZOJ 4195 题目描述 在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足. 考虑一个约束满足问题的简化版本:假设x1,x2,x3...代表程序中出现的变量 ...

  7. [Python]数据挖掘(1)、梯度下降求解逻辑回归——考核成绩分类

    ps:本博客内容根据唐宇迪的的机器学习经典算法  学习视频复制总结而来 http://www.abcplus.com.cn/course/83/tasks 逻辑回归 问题描述:我们将建立一个逻辑回归模 ...

  8. Python3 tkinter基础 Scale orient 横竖 resolution单步步长 length 长度 tickinterval 指示刻度

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  9. hp quicktestprofession ver-10.0(QTP)的入门使用指南

    ---恢复内容开始--- SQA(software quality assurance) tool hp quicktestprofession ver-10.0(QTP) environment w ...

  10. Go-常见的面试题(一)

    文章转载地址:https://juejin.im/entry/5971bed66fb9a06bb21adf15 1.写出下面代码的输出 package main import "fmt&qu ...