尝试 Bindgen 教程时看到 bzlib.h not found
Seeing bzlib.h not found when trying the Bindgen tutorial
我知道有一个与此类似的 post 但我遵循了它并且我仍然看到问题所以我想我会再次询问抱歉。我下载了 bbindgen-tutorial-bzip2-sys 并尝试 运行 它但我收到以下错误
wrapper.h:1:10: fatal error: 'bzlib.h' file not found
wrapper.h:1:10: fatal error: 'bzlib.h' file not found, err: true
其他用户建议降级 .toml 中的 Bindgen 版本,我试过了,问题仍然存在,我还验证了 bzip2 已安装。
是否有与 Bindgen 一起使用的已知 clang 版本?
谢谢
-------------------------------------------- - - - - - 更新 - - - - - - - - - - - - - - - - - - - - --------------------------
所以我安装了 dev bzip 文件,并通过将路径添加到 LD_LIBRARY_PATH 然后使用 ldconfig 更新来验证该库位于 ld 查看的文件夹中。我现在可以在 运行 CARGO BUILD,
时编译
fred@fred-MS-7B06:~/rust_projects/bindgen-tutorial-bzip2-sys-master$ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
但是现在当我尝试 运行 带有 CARGO TEST 的程序时,按照教程
https://rust-lang.github.io/rust-bindgen/print.html#include-the-generated-bindings-in-srclibrs
我现在收到以下错误:
= note: /bin/ld: cannot find -lbz2
collect2: error: ld returned 1 exit status
我发现一个 post 似乎有同样的问题:
https://dev.to/rrampage/cargo-refused-to-build-my-project---a-rust-debugging-story-25e9
他们通过添加 config.toml 文件并指定链接器来修复它,我试过了,但仍然遇到同样的错误。关于我可以检查什么的任何想法我有点卡在这个问题上。
我还检查了从网站下载的 bzip2 开发文件:
https://www.sourceware.org/bzip2/
我注意到没有名为 bz2 的文件,但有一个 libbz2.def 和一个 libbz2.dsp 文件,是否可能是我的 ld 错误地从名称中删除了“lib”?
正如@Jmb 在评论中指出的那样,我需要安装 libbz2-dev:
sudo apt install libbz2-dev
因为这是 Ubuntu 的一个相当新的 WSL 实例,我还需要 libclang-dev:
sudo apt install libclang-dev
我知道有一个与此类似的 post 但我遵循了它并且我仍然看到问题所以我想我会再次询问抱歉。我下载了 bbindgen-tutorial-bzip2-sys 并尝试 运行 它但我收到以下错误
wrapper.h:1:10: fatal error: 'bzlib.h' file not found
wrapper.h:1:10: fatal error: 'bzlib.h' file not found, err: true
其他用户建议降级 .toml 中的 Bindgen 版本,我试过了,问题仍然存在,我还验证了 bzip2 已安装。
是否有与 Bindgen 一起使用的已知 clang 版本?
谢谢
-------------------------------------------- - - - - - 更新 - - - - - - - - - - - - - - - - - - - - --------------------------
所以我安装了 dev bzip 文件,并通过将路径添加到 LD_LIBRARY_PATH 然后使用 ldconfig 更新来验证该库位于 ld 查看的文件夹中。我现在可以在 运行 CARGO BUILD,
时编译fred@fred-MS-7B06:~/rust_projects/bindgen-tutorial-bzip2-sys-master$ cargo build
Finished dev [unoptimized + debuginfo] target(s) in 0.02s
但是现在当我尝试 运行 带有 CARGO TEST 的程序时,按照教程
https://rust-lang.github.io/rust-bindgen/print.html#include-the-generated-bindings-in-srclibrs
我现在收到以下错误:
= note: /bin/ld: cannot find -lbz2
collect2: error: ld returned 1 exit status
我发现一个 post 似乎有同样的问题:
https://dev.to/rrampage/cargo-refused-to-build-my-project---a-rust-debugging-story-25e9
他们通过添加 config.toml 文件并指定链接器来修复它,我试过了,但仍然遇到同样的错误。关于我可以检查什么的任何想法我有点卡在这个问题上。
我还检查了从网站下载的 bzip2 开发文件:
https://www.sourceware.org/bzip2/
我注意到没有名为 bz2 的文件,但有一个 libbz2.def 和一个 libbz2.dsp 文件,是否可能是我的 ld 错误地从名称中删除了“lib”?
正如@Jmb 在评论中指出的那样,我需要安装 libbz2-dev:
sudo apt install libbz2-dev
因为这是 Ubuntu 的一个相当新的 WSL 实例,我还需要 libclang-dev:
sudo apt install libclang-dev