Linux(Centos7)中搭建seetaface2运行环境

原创
2019/04/25 16:42
阅读数 1.1W

一、需要准备的软件包

  1. gcc-5.5.0

    http://ftp.gnu.org/gnu/gcc/gcc-5.5.0/gcc-5.5.0.tar.gz

  2. openssl-1.0.0

    https://www.openssl.org/source/old/1.0.0/openssl-1.0.0.tar.gz

  3. openblas-v0.2.20

    http://github.com/xianyi/OpenBLAS/archive/v0.2.20.tar.gz

  4. protobuf-2.6.0

    //百度云下载地址:带gtest包,可直接安装

    https://pan.baidu.com/s/1bD9JFLkdWYA-MD1sxPoEHQ 提取码:4xh2

    //官方下载地址 :不带gtest包,下载后需要先执行autogen.sh下载gtest包

    https://codeload.github.com/protocolbuffers/protobuf/tar.gz/v2.6.0

    注:autogen.sh默认是从http://googletest.googlecode.com去下载gtest包的,在国内无法访问,需要将第22、23行的内容改为如下内容:

    curl $curlopts -L -O https://github.com/google/googletest/archive/release-1.5.0.zip
    unzip -q release-1.5.0.zip
    rm release-1.5.0.zip
    mv googletest-release-1.5.0 gtest
    

二、安装依赖库

  1. 安装gcc

    gcc版本必须在5.5.0及以上,可以用用 gcc -v 查看

    yum install wget bzip2
    yum install gcc-c++ 
    
    tar -xzvf gcc-5.5.0.tar.gz
    cd gcc-5.5.0/
    ./contrib/download_prerequisites	//自动下载依赖,执行之前,可以将`209.132.180.131 gcc.gnu.org`添加到/etc/hosts中来提高下载速度
    mkdir build
    cd build/								
    ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    make -j4	//-j4 表示用多核编译提高速度。(此步需要很长时间)
    make install
    

    更新/usr/lib64/libstdc++.so.6库文件链接

    ll /usr/lib64/libstdc++.so*
    ll /usr/local/lib64/libstdc++.so*
    
    rm /usr/lib64/libstdc++.so.6	//删除原来的链接
    ln -s /usr/local/lib64/libstdc++.so.6.0.21 /usr/lib64/libstdc++.so.6	//建立新的链接
    
  2. 安装openblas
    yum install perl gcc-gfortran
    

    创建/usr/lib64/libgfortran.so库文件链接

    ln -s /usr/lib64/libgfortran.so.3.0.0 /usr/lib64/libgfortran.so
    

    (如果缺少/usr/lib64/libgfortran.so文件,在安装make时会报"/usr/bin/ld: cannot find -lgfortran"错误)

    tar -xzvf openblas-v0.2.20.tar.gz
    cd OpenBLAS-0.2.20/
    make FC=gfortran
    make PREFIX=/usr/local/openblas install
    

    在/usr/lib64下创建libopenblas.so库文件链接

    ln -s /usr/local/openblas/lib/libopenblas.so /usr/lib64/
    ln -s /usr/local/openblas/lib/libopenblas.so.0 /usr/lib64/
    
  3. 安装openssl
    yum install autoconf libtool zlib-devel
    tar -xzvf openssl-1.0.0.tar.gz
    cd openssl-1.0.0/
    ./config shared zlib-dynamic
    make
    

    将生成的libssl.so.1.0.0和libcrypto.so.1.0.0文件拷到/usr/lib64/目录下

    ll *.so*
    cp libssl.so.1.0.0 /usr/lib64/
    cp libcrypto.so.1.0.0 /usr/lib64/
    ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so
    ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so
    
  4. 安装protobuf
    tar -xjvf protobuf-2.6.0.tar.bz2
    cd protobuf-2.6.0
    ./configure --prefix=/usr/local/protobuf
    make
    make install
    

    在/usr/lib64下创建libprotobuf.so库文件链接

    ln -s /usr/local/protobuf/lib/libprotobuf.so /usr/lib64/
    ln -s /usr/local/protobuf/lib/libprotobuf.so.9 /usr/lib64/
    

    OK,接下来就可以在上面跑seetaface2的应用了。。。

展开阅读全文
打赏
2
7 收藏
分享
加载中
[root@localhost ~]# java -jar seetafaceJNI.jar
[2020-04-23 17:19:48] DEBUG [com.cnsugar.ai.face.SeetafaceBuilder-188] seetaface config: {sqlite.conn.maxTotal=50, sqlite.conn.minIdle=0, sqlite.conn.maxIdle=5, bindata.dir=/usr/local/seetaface2/bindata/model, libs.path=/usr/local/seetaface2/lib/lib, sqlite.db.file=/usr/local/seetaface2/db/faces-data.db, libs=holiday,SeetaPointDetector200,SeetaFaceRecognizer200,SeetaFaceCropper200,SeetaFace2JNI,SeetaFaceDetector200, sqlite.conn.maxWaitMillis=60000}
[2020-04-23 17:19:48] DEBUG [com.cnsugar.ai.face.SeetafaceBuilder-93] load library: holiday
[2020-04-23 17:19:48] DEBUG [com.cnsugar.ai.face.SeetafaceBuilder-93] load library: SeetaPointDetector200
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/local/seetaface2/lib/lib/libSeetaPointDetector200.so: libcrypto.so.1.0.0: ELF load command past end of file
at java.lang.ClassLoader$NativeLibrary.load(Native Method)

博主,知道这个什么原因吗??openssl版本太低了吗
04/23 17:25
回复
举报
跪求博主恢复
04/24 09:41
回复
举报
您好,如果缺少/usr/lib64/libgfortran.so文件,在安装make时会报"/usr/bin/ld: cannot find -lgfortran"错误
报了这个错误,需要自己上传下载libgfortran.so吗?
04/20 16:30
回复
举报
更多评论
打赏
3 评论
7 收藏
2
分享
返回顶部
顶部