Android
如需在 AOSP 中构建裸机 Rust 二进制文件,应使用 rust_ffi_static Soong 规则来构建 Rust 代码,然后通过 cc_binary 和链接器脚本生成二进制文件本身,再使用 raw_binary 将 ELF 转换为可以正常运行的原始二进制文件。
1. rust_ffi_static {
2. name: "libvmbase_example",
3. defaults: ["vmbase_ffi_defaults"],
4. crate_name: "vmbase_example",
5. srcs: ["src/main.rs"],
6. rustlibs: [
7. "libvmbase",
8. ],
9. }
11. cc_binary {
12. name: "vmbase_example",
13. defaults: ["vmbase_elf_defaults"],
14. srcs: [
15. "idmap.S",
16. ],
17. static_libs: [
18. "libvmbase_example",
19. ],
20. linker_scripts: [
21. "image.ld",
22. ":vmbase_sections",
23. ],
24. }
26. raw_binary {
27. name: "vmbase_example_bin",
28. stem: "vmbase_example.bin",
29. src: ":vmbase_example",
30. enabled: false,
31. target: {
32. android_arm64: {
33. enabled: true,
34. },
35. },
36. }
