gpt4 book ai didi

rust - rust bindgen 中的链接失败

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

所以我有一个头库(.h 文件的目录),我需要在我的 rust 代码中使用它。为了让这个工作,我一直在寻找各种 crate 来帮助我实现这个,看起来 bindgen 是最有希望的选择。
我遵循了 bindgen 的文档并创建了一个 wrapper.h 和一个 build.rs 文件。
在 build.rs 文件中,我已将所有需要的函数列入白名单,文档中提到的链接参数指定为 println! ("cargo:rustc-link-lib=C/complete path to my header files"); .
但是在进行 cargo 构建时会失败并出现以下错误:

error: linking with link.exe failed: exit code: 1181
我无法找到解决方案。
非常感谢任何帮助或建议。

最佳答案

rustc-link-lib指令仅适用于 .a/.so/.dll并且不能与 .h 一起使用或 .rs文件。这里完全不合适。
如果您制作 build.rs脚本写入 std::env::var("OUT_DIR") 指定的目录路径,然后您的主库代码可以动态包含它:

include!(concat!(env!("OUT_DIR"), "/temp_file_built_by_build_dot_rs.rs"));
或者,不要打扰 build.rs一点也不。使用命令行 bindgen 并包含生成的 .rs文件作为项目中的模块(就像常规源代码文件一样)。

关于rust - rust bindgen 中的链接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62672905/

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