随机的 Rust ABI 库怎么可能包含未定义的函数?

问题描述 投票:0回答:1

我写了一个简单的 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

java rust java-native-interface abi
1个回答
0
投票

Rust 使用并链接 C 库来定义大部分

std
,因此
printf
只是 C 函数。

© www.soinside.com 2019 - 2024. All rights reserved.