最近因为项目需要,看了看机器学习方面的东西。搜索了一番,发现Shark正是需要的东西。于是准备按官方文档来使用它了。但是官方文档只有怎么生成静态库,并没有在QT里引用的sample。
废话不多说,直接上步骤:
首先,环境:Ubuntu 16.04,Qt5.7,shark 3.1.3
在开始编译安装shark之前,先安装其所依赖的其他组件:
sudo apt-get install cmake cmake-curses-gui libatlas-base-dev libboost-all-dev
Shark 3.1.3的source地址:https://github.com/Shark-ML/Shark/releases
可以选择下载zip,或者tar.gz。里面的东西都一样,只是压缩格式不同。
解压后,命令行到 Shark-3.1.3 目录。
然后按顺序执行下列命令:
mkdir build
cd build
cmake ../
make
sudo make install
友情提醒:以上make命令大概需要30分钟左右。注意预留足够的时间。
然后,在QT project中引用shark library: 在pro文件中添加如下代码:
#Shark library
LIBS += -lshark -lboost_serialization -lcblas -latlas -llapack
INCLUDEPATH += /usr/include/atlas
可以看到以上LIBS除了添加了lshark library, 还添加了shark所引用的 atlas的library。这是必需的。
若项目中还用到了其他boost library的话,编译可能不过,那么也需要在LIBS上继续追加对应的library。
总结于此,希望有所帮助。