人脸识别离线sdk的openblas库不兼容
置顶
刘金会01 发布于2018-12-03 11:34 浏览:1744 回复:3
3
收藏

在windows或linux的采集、离线sdk中,因为openblas库文件不兼容的问题,sdk在linux可能出现core dump错误、windows平台x64环境下可能出现openblas.dll错误,导致sdk无法正常使用,可通过在出错的机器设备上编译openblas库文件,解决问题。

1:linux平台(centos或ubuntu)
可以到openblas官网下载源文件,可用0.2.20版本。
https://github.com/xianyi/OpenBLAS/archive/v0.2.20.zip
解压zip包。
cd openblas
make
sudo make PREFIX=/usr/local/OpenBLAS install
然后把你编译生成的openblas库文件拷贝替换sdk中的openblas库文件,
重新编译sdk,运行即可。
 
2: windows平台
openblas源码下载地址同上。
https://github.com/xianyi/OpenBLAS/archive/v0.2.20.zip
安装MinGW-w64,下载地址如下:
http://sourceforge.net/projects/mingw-w64/?source=recommended
安装,勾选如下,其余默认即可。

添加环境变量
 将mingw64将mingw64的bin文件目录添加到系统环境变量中。

验证安装是否成功
打开cmd,输入gcc -v
查看编译器信息。

安装msys
下载地址:
https://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/ 
注意:不是下载mingw-builds-install.exe, 下载如图中框出的部分

解压并将解压后得msys目录移动至Mingw-64安装目录
编译openblas
按前述下载地址下载openblas源码
解压压缩文件
启动msys目录下msys.bat文件,使用cd命令进入openblas源码目录。
编译、执行如下命令
openblas
的编译是和硬件平台相关的,比如同是windows系统,在A机器上的产出可能在B机器无法运行,建议编译选项开启DYNAMIC_ARCH,动态选择cpu架构。Ps:编译可能花费时间较长,依赖机器性能,请耐心等待。

编译命令如下:
make USE_OPENMP=1 USE_THREAD=1 NUM_THREADS=20 DYNAMIC_ARCH=1 BINARY=64
生成产出:
make PREFIX=/XXX/…/build install
产出目录结构:

把编译生成的openblas.dll文件拷贝覆盖sdk中的旧dll文件,重新编译运行即可。

收藏
点赞
3
个赞
共3条回复 最后由liguanghui2588回复于2019-04-19 17:12
#4liguanghui2588回复于2019-04-19 17:12:10

可以公开吗

0
#3荒墨丶迷失回复于2018-12-10 19:57:04

我最近刚好也遇到这个问题 离线SDK的

2
#2独孤焰坤回复于2018-12-04 10:17:42

楼主可以直接把你的动态库放到github吗,供大家下载一下

0
TOP
切换版块