我写了一个简单的 Rust 文件作为
#[no_mangle]
pub extern "C" fn add(a: i32, b: i32) -> i32 {
a + b
}
并尝试在 Java 中调用它。 所以我加载了它并定义了 2 个本机方法:
public interface CLibrary extends Library {
CLibrary INSTANCE = Native.load("add", CLibrary.class);
void printf(String format, Object... args);
int add(int a, int b);
}
请注意,我将
printf
放在这里,除了 add
。
但它有效:
CLibrary.INSTANCE.printf("Hello, World!\n");
System.out.println(CLibrary.INSTANCE.add(1, 2));
这些代码输出
3
Hello, World!
我怎样才能访问我的 Rust 源中未定义的
printf
?
Rust 使用并链接 C 库来定义大部分
std
,因此 printf
只是 C 函数。