代码拉取完成,页面将自动刷新
#!/bin/bash
# fse for mtfsdk 库linux编译脚本
#字符串转大写
#参数:1字符串
function string_toupper()
{
echo $1 | tr '[a-z]' '[A-Z]'
}
sh_folder=$(cd "$(dirname $0)"; pwd -P)
folder_name=$(basename $sh_folder)
# 定义编译的版本类型(DEBUG|RELEASE)
build_type=RELEASE
OPT_COPY=1
OPT_BUILD=1
while [[ $# -gt 0 ]]
do
# 转大写
key=$(string_toupper $1)
case ${key} in
DEBUG)
build_type=DEBUG;shift;;
NOCOPY)
OPT_COPY=0;shift;;
NOBUILD)
OPT_BUILD=0;shift;;
*) shift;;
esac
done
echo build_type=$build_type
prefix=$sh_folder/release/fse_mtfsdk_linux_x86_64
pushd $sh_folder/..
[ -d $folder_name.prj ] && rm -fr $folder_name.prj
mkdir $folder_name.prj
pushd $folder_name.prj
# 编译基于MTFSDK linux(x86_64) 的 feature_se动态库
# EXT_SDK_TYPE 指定算法类型可选值:
# CASSDK(默认值)
# EUCLIDEAN 默认使用欧氏距离计算相似度
# CUSTOM 使用自定义算法提的供相似度比较函数
# 如果EXT_SDK_TYPE指定为EUCLIDEAN,下列参数需要设置:
# EUCLIDEAN_ELEM_TYPE 定义特征值数组类型(double/float),如果不指定,默认值为double
# EUCLIDEAN_ELEM_LEN 定义特征值数组长度
# EUCLIDEAN_CODE_END_WITH_SUM 定义特征值数组最后是否有一个double保存特征值数组的点积和,默认为OFF
# ============================下列为通用参数与EXT_SDK_TYPE无关
# FSE_LIBNAME 指定生成动态库名,不指定则使用默认值
# JNI_FSE_LIBNAME 指定生成jni动态库名,不指定则使用默认值
cmake "$sh_folder" -G "Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=$build_type \
-DCMAKE_INSTALL_PREFIX=$prefix \
-DJNI_FSE_LIBNAME=FS_FaceFeatureCompare \
-DEXT_SDK_TYPE=EUCLIDEAN \
-DEUCLIDEAN_ELEM_TYPE=float \
-DEUCLIDEAN_ELEM_LEN=128 \
-DEUCLIDEAN_CODE_END_WITH_SUM=OFF
dst_dir_prefix=$sh_folder/../mtfsdk
dst_dir=$dst_dir_prefix/mtfsdk-base/src/main/resources/linux-x86-64
if [ "$OPT_BUILD" = "1" ] ;
then
cmake --build . --target install/strip -- -j8 || exit
if [ "$OPT_COPY" = "1" ] ;
then
[ -d "$dst_dir_prefix" ] || exit 255
[ -d "$dst_dir" ] || mkdir -p "$dst_dir" || exit
cp -fv "$prefix/lib/libFS_FaceFeatureCompare.so" "$dst_dir" || exit
fi
fi
popd
popd
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。