1 Crypto++不支持CMake编译
Crypto官网:https://www.cryptopp.com/
Crypto++ github:https://github.com/weidai11/cryptopp
从Crypto++官网或者github下载的发布包本身是不支持CMake编译的,里面就没有CMakeLists.txt文件,不过github中这个仓库:https://github.com/abdes/cryptopp-cmake 提供了Crypto++8.7 - 8.9版本的CMake编译支持,如果需要更老的版本也可以看这个仓库:https://github.com/noloader/cryptopp-cmake,这个仓库提供了到Crypto++8.6的CMake编译支持。
本篇文章以https://github.com/abdes/cryptopp-cmake的写本文最新的Crypto++8.9如何在Windows上交叉编译Android库为例进行说明。
2 Windows上交叉编译Crypto++ Android库
2.1 拉取cryptopp-cmake最新仓库或者下载cryptopp-cmake最新的发布包
你可以使用git clone
拉取cryptopp-cmake的最新仓库或者在它的Release下载最新的发布包,这里以8.9版本为例。
下载完成之后解压缩文件夹。
2.2 交叉编译Crypto++ Android库
假设你已经准备好windows上交叉编译Android项目的环境:
- Android SDK
- Android NDk
- CMake
- Ninja
然后在解压缩的文件根目录cryptopp-cmake-CRYPTOPP_8_9_0下新建一个名为build_android.bat
的windows批处理文件,在文件中新增以下内容
@REM abi=armeabi armeabi-v7a arm64-v8a mips mips64 x86 x86_64
set abi=arm64-v8a
set ANDROID_SDK_HOME=F:/Software/Android/AndroidSDK/SDK
set ANDROID_NDK_HOME=F:/Software/Android/AndroidSDK/SDK/ndk/25.1.8937393
set ANDROID_SDK_CMAKE=%ANDROID_SDK_HOME%/cmake/3.22.1
set ANDROID_NATIVE_API_LEVEL=19
set ANDROID_PLATFORM=android-29
set BUILD_TYPE=Release
set GENERATOR="Ninja"
if not exist build md build
cd build
@REM build armeabi-v7a
if not exist %abi% md %abi%
cd %abi%
%ANDROID_SDK_CMAKE%/bin/cmake ^
-DANDROID_ABI=%abi% ^
-DANDROID_NDK=%ANDROID_NDK_HOME% ^
-DCMAKE_BUILD_TYPE=%BUILD_TYPE% ^
-DCMAKE_TOOLCHAIN_FILE=%ANDROID_NDK_HOME%/build/cmake/android.toolchain.cmake ^
-DANDROID_PLATFORM=%ANDROID_PLATFORM% ^
-DANDROID_NATIVE_API_LEVEL=%ANDROID_NATIVE_API_LEVEL% ^
-DANDROID_TOOLCHAIN=clang ^
-DCMAKE_GENERATOR=%GENERATOR% ^
-DCMAKE_MAKE_PROGRAM=%ANDROID_SDK_CMAKE%/bin/ninja ^
-DCRYPTOPP_BUILD_TESTING=FALSE ^
../../
%ANDROID_SDK_CMAKE%/bin/ninja
cd ../../
然后在命令行工具运行批处理文件,或者直接点击进行运行,等待编译完成。
2.3 库输出目录
编译成功之后,库路径为:cryptopp-cmake-CRYPTOPP_8_9_0\build\arm64-v8a\cryptopp\libcryptopp.a
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:Windows交叉编译Crypto++ Android库
原文链接:https://www.stubbornhuang.com/2907/
发布于:2023年12月08日 14:22:17
修改于:2023年12月08日 14:22:17
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52