flutter rust bridge 编译成so 文件 或者 .a文件 依赖到主项目

js 复制代码
安装编译链
rustup target add aarch64-linux-android armv7-linux-androideabi

aarch64-linux-android 用于输出arm64-v8a的.so文件
armv7-linux-androideabi 用于输出armeabi-v7a的.so文件
您可以通过rustup target list查看所有支持的工具链.
js 复制代码
### 安装编译工具

`cargo install cargo-ndk`

-   `cargo-ndk` 用来编译so文件
js 复制代码
cargo ndk -t armeabi-v7a -t arm64-v8a build --release

关于cargo ndk更多用法可以参考: github.com/bbqsrc/carg...

  • arm64-v8a平台的so文件输出在target/aarch64-linux-android/release/xxx.so
  • armeabi-v7a平台的so文件输出在target/armv7-linux-androideabi/release/xxx.so

参考文章 blog.csdn.net/angcyo/arti...

按照上面的流程 android 的 so文件就可以打包出来了。

提问ai ai给了另一套方式:

js 复制代码
# armv7 支持
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi24-clang"
export CC_armv7_linux_androideabi="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/armv7a-linux-androideabi24-clang"
export AR_armv7_linux_androideabi="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar"

# x86_64 支持
export CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/x86_64-linux-android24-clang"
export CC_x86_64_linux_android="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/x86_64-linux-android24-clang"
export AR_x86_64_linux_android="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/darwin-x86_64/bin/llvm-ar"

在 .bash_profile 或者.zprofile 中添加这个

然后通过 这个命令也可以打出so 文件

js 复制代码
cargo build --release --target armv7-linux-androideabi
cargo build --release --target x86_64-linux-android

so文件弄出来之后 直接Android 引入就可以了。

对于ios 直接用下面的命令 就可以生成 .a 文件 但是我没引入成功 有大佬引入成功 麻烦评论区指点一下

js 复制代码
cargo build --release --target aarch64-apple-ios
cargo build --release --target x86_64-apple-ios
lipo -create \
    target/aarch64-apple-ios/release/libvideo_compressor.a \
    target/x86_64-apple-ios/release/libvideo_compressor.a \
    -output ios/libvideo_compressor.a
相关推荐
2301_7951672040 分钟前
玩转Rust高级应用 如何避免对空指针做“解引用”操作,在C/C++ 里面就是未定义行为
c语言·c++·rust
星释1 小时前
Rust 练习册 :Leap与日期计算
开发语言·后端·rust
猫林老师3 小时前
Flutter for HarmonyOS 开发指南(一):环境搭建与项目创建
flutter·华为·harmonyos
Digitally5 小时前
如何在Mac上同步iPhone短信
macos·ios·iphone
星释7 小时前
Rust 练习册 :Matching Brackets与栈数据结构
数据结构·算法·rust
2501_915106327 小时前
App HTTPS 抓包 工程化排查与工具组合实战
网络协议·ios·小程序·https·uni-app·php·iphone
星释7 小时前
Rust 练习册 :Luhn与校验算法
java·算法·rust
2501_916008899 小时前
金融类 App 加密加固方法,多工具组合的工程化实践(金融级别/IPA 加固/无源码落地/Ipa Guard + 流水线)
android·ios·金融·小程序·uni-app·iphone·webview
swear019 小时前
VSCODE 插件 rust-analyzer 使用遇到的问题 快捷键查看定义
ide·vscode·rust
2501_9159214310 小时前
Fastlane 结合 开心上架(Appuploader)命令行版本实现跨平台上传发布 iOS App 免 Mac 自动化上架实战全解析
android·macos·ios·小程序·uni-app·自动化·iphone