gpt4 book ai didi

java - "cstdarg file not found"在 Rust 项目的 C 绑定(bind)上运行 jextract 时

转载 作者:行者123 更新时间:2023-12-03 11:37:08 25 4
gpt4 key购买 nike

我正在尝试使用 Rust 编写的简单整数加法函数与 Java 的 Project Panama 一起使用。使用 cbindgen 生成绑定(bind)crate,运行 jextract 时出现以下错误:

jextract -t org.adder -L . -l adder-java --record-library-path -I /Library/Developer/CommandLineTools/usr/include/c++/v1/cstdarg bindings.h -o adder-java.jar
java.lang.RuntimeException: /Users/ash/Code/adder/bindings.h:1:10: fatal error: 'cstdarg' file not found
我看过 the examples given ,但无法破译我做错了什么。
这是我的库文件:
#[no_mangle]
pub extern "C" fn addition(a: u32, b: u32) -> u32 {
a + b
}
以及生成的绑定(bind)(我猜还需要 cstdintcstdlibnew 的来源?):
#include <cstdarg>
#include <cstdint>
#include <cstdlib>
#include <new>

extern "C" {

uint32_t addition(uint32_t a, uint32_t b);

} // extern "C"
我需要做什么才能获得 jextract找到这些文件?

最佳答案

正确的命令是jextract -C -x -C c++ -I /Library/Developer/CommandLineTools/usr/include/c++/v1 -t adder -o adder.jar bindings.h .
-x c++ clang ,包括-I指定的路径.

关于java - "cstdarg file not found"在 Rust 项目的 C 绑定(bind)上运行 jextract 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62760145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com