7.1.5 从 C 调用 Rust
05-从 C 调用 Rust — Comprehensive Rust
译文 · 基于 Comprehensive Rust
原文链接: https://google.github.io/comprehensive-rust/android/interoperability/with-c/rust.html
7.1.5 从 C 调用 Rust
现在可以从 C 二进制调用它了:
interoperability/rust/libanalyze/analyze.h
1
2
3
4
5
6
| #ifndef ANALYZE_H
#define ANALYZE_H
void analyze_numbers(int x, int y);
#endif
|
interoperability/rust/analyze/main.c
1
2
3
4
5
6
7
| #include "analyze.h"
int main() {
analyze_numbers(10, 20);
analyze_numbers(123, 123);
return 0;
}
|
interoperability/rust/analyze/Android.bp
1
2
3
4
5
| cc_binary {
name: "analyze_numbers",
srcs: ["main.c"],
static_libs: ["libanalyze_ffi"],
}
|
在设备上构建、推送并运行该二进制:
1
2
3
| m analyze_numbers
adb push "$ANDROID_PRODUCT_OUT/system/bin/analyze_numbers" /data/local/tmp
adb shell /data/local/tmp/analyze_numbers
|