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"); }, _ => {}}