julia android example
Heat
您还可以从发布页面下载 APK 版本。
PS:您不需要再次构建它,因为我将预构建的 C++ 文件放在native/libheat
中。
为了进行代码生成,您将需要 SyslabCC,它是捆绑在 MWORKS.Syslab 中的 Julia AOT 编译器。
> scc build.jl -o libheat.dll --no-blas> ls .syslabcc-cache/libheat/ atomic_ops bin juliamk.jl libheat.cpp make.jl syslabcrt-dylib syslabcrt-io bdwgc ghc-文件系统 lib libheat.h Makefile syslabcrt-intrinsics win32-implib
然后将.syslabcc-cache/libheat/
中的内容复制到native/libheat
中。
您需要有 Android 移动设备才能运行该应用程序。
该项目也应在 Linux x64/aarch64 上构建,但可能无法在 Windows 上构建,因为 2024/06 发布的 SyslabCC 不支持 MSVC(最近的版本已支持 Window/macOS 构建,但尚未公开)。
# Flutter Android 的调试模式使用 32 位 ABIflutter run# flutter run -d <你的 Android 手机设备 id>
有关更多详细信息,请参阅调试 Flutter 应用程序。
我使用 Rust 构建 Julia 生成的 C++ 项目并将它们集成到 Flutter 中。
但是,生成的库在 Android 上需要libc++_shared.so
。我使用来自这个的补丁:
根据commit aa78bf1修改android/app/build.gradle
将以下行添加到native/hub/build.rs
:
让 target_os = std::env::var("CARGO_CFG_TARGET_OS");match target_os.as_ref().map(|x| &**x) { Ok("android") => { println!("cargo:rustc -link-lib=dylib=stdc++"); println!("货物:rustc-link-lib=c++_shared"); }, _ => {}}