From 71a0ae1f77c2b14fe9d3c9431a26a4af63d632fa Mon Sep 17 00:00:00 2001 From: fangting Date: Thu, 4 May 2023 11:41:38 +0800 Subject: [PATCH] add oh user guide Signed-off-by: fangting --- README_zh.md | 113 ++++++++++++++++++++++++++++++++++++++++++++--- bindgen_test.png | Bin 0 -> 56023 bytes 2 files changed, 107 insertions(+), 6 deletions(-) create mode 100644 bindgen_test.png diff --git a/README_zh.md b/README_zh.md index 5ddd5f32..86fa606e 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,7 +1,7 @@ [![crates.io](https://img.shields.io/crates/v/bindgen.svg)](https://crates.io/crates/bindgen) [![docs.rs](https://docs.rs/bindgen/badge.svg)](https://docs.rs/bindgen/) -## bindgen +## 引入背景 `bindgen` 自动生成Rust与C(和一些C++)库的FFI绑定。 @@ -99,10 +99,105 @@ bindgen的目录树结构如下: └── rustfmt.toml ``` - -## 使用指导 - -建议初学者先阅读[使用指导](https://rust-lang.github.io/rust-bindgen),然后build仓下rust/tests/test_bindgen_test来具体使用该工具加深理解。 +## Bindgen工具在OH上的使用指导 + +### 操作步骤 +下面是一个使用bindgen实现Rust调用C的示例。 + +1. 在C代码侧,使用头文件lib.h定义两个接口,接口FuncAAddB用来实现两数求和,接口SayHello用来打印字符串。 + + ```c + #ifndef BUILD_RUST_TESTS_BINDGEN_TEST_LIB_H_ + #define BUILD_RUST_TESTS_BINDGEN_TEST_LIB_H_ + #include + #include "build/rust/tests/test_bindgen_test/test_for_hello_world/lib2.h" + + uint32_t FuncAAddB(uint32_t a, uint32_t b); + void SayHello(const char *message); + + #endif // BUILD_RUST_TESTS_BINDGEN_TEST_LIB_H_ + ``` + + +2. 在lib.c中添加对两个接口的对应实现。 + + ```c + #include "build/rust/tests/test_bindgen_test/test_for_hello_world/lib.h" + #include + #include + + void SayHello(const char *message) + { + printf("This is a test for bindgen hello world:\n"); + printf("%s\n", message); + } + + uint32_t FuncAAddB(uint32_t a, uint32_t b) + { + printf("This is a test for bindgen of a + b:\n"); + return a + b; + } + ``` + +3. 添加文件main.rs,就可以在Rust侧通过c_ffi实现对C侧的接口调用。注意Rust侧调用的不安全接口需要使用unsafe封装。 + + ```rust + //! bindgen test for hello world + #![allow(clippy::approx_constant)] + mod c_ffi { + #![allow(dead_code)] + #![allow(non_upper_case_globals)] + #![allow(non_camel_case_types)] + include!(env!("BINDGEN_RS_FILE")); + } + /// pub fn add_two_numbers_in_c + pub fn add_two_numbers_in_c(a: u32, b: u32) -> u32 { + unsafe { c_ffi::FuncAAddB(a, b) } + } + + use std::ffi::c_char; + use std::ffi::CString; + + /// fn main() + fn main() { + println!("{} + {} = {}", 3, 7, add_two_numbers_in_c(3, 7)); + let c_str = CString::new("This is a message from C").unwrap(); + let c_world: *const c_char = c_str.as_ptr() as *const c_char; + unsafe { + c_ffi::SayHello(c_world); + } + } + + ``` + +4. 添加构建文件BUILD.gn,建立Rust模块对C模块的依赖。 + + ```GN + import("//build/ohos.gni") + + ohos_shared_library("c_lib") { + sources = [ "lib.c" ] + defines = [ "COMPONENT_IMPLEMENTATION" ] + } + + rust_bindgen("c_lib_bindgen") { + header = "lib.h" + } + + ohos_rust_executable("bindgen_test") { + deps = [ ":c_lib" ] + deps += [ ":c_lib_bindgen" ] + sources = [ "main.rs" ] + bindgen_output = get_target_outputs(":c_lib_bindgen") + inputs = bindgen_output + rustenv = [ "BINDGEN_RS_FILE=" + rebase_path(bindgen_output[0]) ] + crate_root = "main.rs" + } + ``` + +**调测验证** + +![bindgen_test](./bindgen_test.png) ## MSRV @@ -110,10 +205,16 @@ Minimum support Rust版本是**1.60.0**。 目前还没有制定MSRV提升政策,所以MSRV可能会在任何版本中增加。 -MSRV是可用于编译`bindgen`的Minimum Rust版本。然而,`bindgen`可以生成与低于当前MSRV的Rust版本兼容的绑定。 +MSRV是可用于编译`bindgen`的Minimum Rust版本。`bindgen`可以生成与低于当前MSRV的Rust版本兼容的绑定。 ## API参考 [API参考文档在docs.rs上](https://docs.rs/bindgen) +## 开发者贡献 + +在使用该工具的过程中有任何问题欢迎开发者在社区issue中反馈。 + +
+ diff --git a/bindgen_test.png b/bindgen_test.png new file mode 100644 index 0000000000000000000000000000000000000000..4c4d01b567e35fd07ce7a8a90256281cd9fcc165 GIT binary patch literal 56023 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
=#N3$my2nj-e2 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 UOC4iO!6VF3me-K0lQ9qfA7>vhwg3PC literal 0 HcmV?d00001 -- Gitee