gpt4 book ai didi

rust - 链接到二进制箱子

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

我想将一个 crate 用作我自己的一些代码的库(具体来说是 speedtest-rs,但这并不重要)。但是,每当我尝试使用这个 crate 时,编译器都不想很好地使用它。

$ cargo build
Compiling my-project v0.1.0 (/home/nick/Documents/code/my-project)
error[E0432]: unresolved import `speedtest_rs`
--> src/main.rs:1:5
|
1 | use speedtest_rs::*;
| ^^^^^^^^^^^^ use of undeclared type or module `speedtest_rs`

看着 Rust book ,似乎二进制文件和库文件之间存在区别

The rand crate is a library crate which contains code intended to be used in other programs


一些谷歌搜索告诉我二进制箱子只有一个额外的链接步骤,所以我应该能够链接它们,对吧?我知道很多 Rust 包中都有库和二进制文件,但是当作者似乎不遵循这种模式时你会怎么做?

最佳答案

Some googling has shown me that binary crates just have an extra link step, so I should be able to link against them, right?


不,没那么简单。加上这个额外的步骤会创建一个可执行文件而不是库文件。可执行文件不能用作库。

I know a lot of Rust packages have both a library and a binary in them, but what do you do when an author does not seem to follow this pattern?


你可以:
  • 在 GitHub 上让他们发布一个库。
  • Fork the crate 并创建自己的库(您可以这样做,因为它是使用通常的双重“Apache 许可证,版本 2.0”+“MIT”许可证发布的)。

  • 没有一种将二进制 crate 用作库的自动化方法,因为特别是:
  • Rust 不会生成库。
  • 由于 crate 缺少 src/lib.rs文件,没有任何东西被导出。这类似于将箱子中的所有元素设为私有(private)。你将无法使用任何东西。
  • 关于rust - 链接到二进制箱子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63103964/

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