虹软的人脸识别sdk提供了免费的离线人像识别功能,识别速度也很快,可以很便捷地集成在各种不同的开发语言里边,使用到广泛的应用场景。不过,在集成到我们的门禁系统(基于java)的时候,还是遇到了一些坑,这里记录一下,希望对其他使用虹软(arcsoft)的朋友有所帮助。
## 动态链接库
要使用虹软sdk,首要任务是下载它的动态链接库,并将其接口转化为当前语言的形式。比如使用java的时候,是基于[jna](https://github.com/java-native-access/jna)来实现接口的java调用的。
### windows
需要安装vc++2013的运行时组件。下载地址:[http://www.microsoft.com/zh-cn/download/details.aspx?id=40784](http://www.microsoft.com/zh-cn/download/details.aspx?id=40784)
![](https://c.dengxiaolong.com/blog/typecho/1541554432.png-typecho)
![](https://c.dengxiaolong.com/blog/typecho/1541554466.png-typecho)
根据你下载的dll是32位还是64位的,可以分别选择vcredist_x86.exe或者vcredist_x64.exe。
### linux
目前linux的版本只有64位的,在linux下基于jna调用其so文件时,需要确保glibc>=2.14,否则会出现GLIBC的报错:
```bash
/lib64/libc.so.6: version `GLIBC_2.14’ not found
```
在centos 6.5中,默认的glibc是2.12的,需要我们进行对其进行升级。升级glibc的动作较为危险,一不小心会导致整个系统挂掉,因此一定要小心谨慎。
下面是编译安装glibc2.14的主要操作脚本:
```
cd /usr/local/src
wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
tar xvfz glibc-2.14.tar.gz
cd glibc-2.14
make build
cd build
../configure --prefix=/usr/local/glibc-2.14 --with-headers=/usr/include
make -j4
make install
rm /lib64/libc.so.6
LD_PRELOAD=/usr/local/glibc-2.14/lib/libc-2.14.so ln -s /usr/local/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
```
编译glibc的时间较长,请耐心等候。
如果出现中文编码问题,可以通过下面的操作恢复
```bash
mkdir /usr/local/glibc-2.14
cp /usr/lib/locale/locale-archive /usr/local/glibc-2.14/lib/locale/locale-archive
```
如果真的出现系统崩溃,可以按照下面的教程恢复:
https://www.cnblogs.com/nnufish/p/9448318.html