下载本项目源码
git clone –recursive https://github.com/KangLin/FaceRecognizer.git
或者:
git clone https://github.com/KangLin/FaceRecognizer.git
git submodule update --init --recursive
下载必选库(玉兔公共)库源码
git clone https://github.com/KangLin/RabbitCommon.git
从源码编译或者安装预编好的可选库
使用 vcpkg 编译可选的依赖库
vcpkg install openssl libyuv ffmpeg opencv opencv[contrib] dlib ncnn
从源码下载并编译可选的依赖库
编译
cd FaceRecognizer
mkdir build
cd build
cmake .. -G"Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=`pwd`/install \
-DCMAKE_BUILD_TYPE=Release \
-DQT_DIR= \
-DQt5_DIR= \
-DRabbitCommon_DIR= \
[其它可选 CMake 配置参数]
cmake --build . --config Release
安装库和程序
cmake --build . --config Release --target install # --target install/strip strip 目标
详见:ubuntu.yml
把生成库的目录加入到变量 LD_LIBRARY_PATH 中
cd FaceRecognizer
cd build/install
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:`pwd`/bin:[可选库的目录]
执行安装目录 bin 目录下的程序
cd FaceRecognizer
cd build/install/bin
./FaceRecognizerApp.sh
编译
cd FaceRecognizer
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=install ^
-DCMAKE_BUILD_TYPE=Release ^
-DQT_DIR= ^
-DQt5_DIR= ^
-DRabbitCommon_DIR= ^
[其它可选 CMake 配置参数]
cmake --build . --config Release
安装库和程序
cmake --build . --config Release --target install
执行安装目录 bin 目录下的程序
cd FaceRecognizer
cd build/install/bin
FaceRecognizerApp.exe
打开 cmake-gui.exe 配置。参数选择与命令行编译相同。注意一定要加 CMAKE_BUILD_TYPE 参数,否则会出现下面错误:
RabbitCommonTools.obj : error LNK2019: 无法解析的外部符号 "int __cdecl qInitResources_translations_RabbitCommon(void)" (?qInitResources_translations_RabbitCommon@@YAHXZ),该符号在函数 "void __cdecl g_RabbitCommon_InitResource(void)" (?g_RabbitCommon_InitResource@@YAXXZ) 中被引用
RabbitCommonTools.obj : error LNK2019: 无法解析的外部符号 "int __cdecl qCleanupResources_translations_RabbitCommon(void)" (?qCleanupResources_translations_RabbitCommon@@YAHXZ),该符号在函数 "void __cdecl g_RabbitCommon_CleanResource(void)" (?g_RabbitCommon_CleanResource@@YAXXZ) 中被引用
设置环境变量:
export ANDROID_NDK=/home/android-ndk
设置环境变量:
export ANDROID_SDK=/home/android-sdk
编译
cd FaceRecognizer
mkdir build
cd build
cmake .. -G"Unix Makefiles" \
-DCMAKE_INSTALL_PREFIX=`pwd`/android-build \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
-DANDROID_ABI="armeabi-v7a with NEON" \
-DANDROID_PLATFORM=android-24 \
-DQT_DIR= \
-DQt6_DIR= \
-DRabbitCommon_DIR= \
-DYUV_DIR= \
[其它可选 CMake 配置参数]
cmake --build . --config Release
安装库和程序
cmake --build . --config Release --target install
生成 APK
cmake --build . --config Release --target all
编译
cd FaceRecognizer
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=%cd%\android-build ^
-G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK%/build/cmake/android.toolchain.cmake ^
-DCMAKE_MAKE_PROGRAM=%ANDROID_NDK%/prebuilt/windows-x86_64/bin/make.exe ^
-DANDROID_ABI=arm64-v8a ^
-DANDROID_ARM_NEON=ON ^
-DANDROID_PLATFORM=android-24 ^
-DQT_DIR= ^
-DQt6_DIR= ^
-DRabbitCommon_DIR= ^
-DYUV_DIR= ^
[其它可选 CMake 配置参数]
cmake --build . --config Release
安装
安装库和程序
cmake --build . --config Release --target install
生成 APK
cmake --build . --config Release --target all
msys2 或 cygwin
cd FaceRecognizer
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/android-build \
-G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
-DCMAKE_MAKE_PROGRAM=${ANDROID_NDK}/prebuilt/windows-x86_64/bin/make.exe \
-DANDROID_ABI=arm64-v8a \
-DANDROID_ARM_NEON=ON \
-DANDROID_PLATFORM=android-24 \
-DQT_DIR= \
-DQt6_DIR= \
-DRabbitCommon_DIR= \
-DYUV_DIR= \
[其它可选 CMake 配置参数]
安装库和程序
cmake --build . --config Release --target install
生成 APK
cmake --build . --config Release --target all
安装 apk 到设备
adb install android-build-debug.apk