问题标签 [rust-cargo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3354 浏览

rust - `货物包`:错误:找不到主要功能

我正在尝试使用cargoRust 的包管理器来打包一个库。当我尝试cargo package按照文档运行时,我得到以下输出:

我很困惑。我正在尝试打包一个库(带有有用的外部函数),所以我希望我不需要main函数。这是我的Cargo.toml

这是我的目录结构:

我错过了什么?

0 投票
1 回答
1148 浏览

rust - 货物中的自定义cfg目标?

我将如何在货物中做到这一点?这features是为了什么?

功能似乎仅适用于可选依赖项。

0 投票
1 回答
1417 浏览

rust - Cargo 将 git 要求放在哪里?

编译项目时,cargo 会自动下载 Cargo.toml 中指定的需求,以 git-repository 的形式给出。

例如

将导致

编译时。它将这些存储库保存在我的磁盘上的什么位置?我正在使用 Windows,这会改变什么吗?

0 投票
1 回答
1267 浏览

undefined-reference - 使用 Rust Cargo 构建时出现未定义的引用错误

使用 Cargo 构建项目时收到以下错误消息:

我已经读到我可能可以添加-lz标志来防止这种情况,但是我该如何使用 Cargo 来做到这一点?

0 投票
2 回答
342 浏览

rust - 静态链接使用 regex_macros 的二进制文件

我刚刚意识到,当我使用regex_macroscrate 时,通过 Cargo 创建的 Rust 二进制文件是动态链接的。这有点问题,因为当我更新到更新版本的regex_macros.

有办法解决吗?

这是一个最小的例子:

编译它并查看链接的内容揭示了这一点:

如您所见,第一个链接的 dylib 有一个进入项目所在目录的绝对路径,即使这样做cargo clean也可能会破坏可执行文件。

0 投票
1 回答
271 浏览

shared-libraries - 从货物 dylib 命名中删除哈希扩展

货运.toml

每当我执行cargo build我的 dylib 时,都会命名为:

libfaceblaster-engine-f09635dc7c9bd155.so.

无论如何要在.toml文件中添加一些东西以删除放在最后的哈希?

提前感谢您的帮助!

0 投票
1 回答
1800 浏览

rust - 如何让 Cargo 运行本地依赖项测试?

我正在处理一个跨多个板条箱拆分的项目。顶级 crate(应用程序)需要另外两个 crate(库)作为依赖项。在顶级 crate 中运行cargo test会构建依赖项并为顶级 crate 运行测试,但不会为其他两个 crate 运行测试。有没有一种配置方法可以cargo test在所有三个 crate 中运行测试?

谢谢!

0 投票
1 回答
1178 浏览

openssl - 如何防止多个依赖项链接到同一个本机库?

问题:如何解决(或修复)我的两个依赖项链接到同一个库但该库不能链接两次的情况?这似乎通常可以通过共享库来解决,但我不确定如何使用 Rust 来解决它。

细节:

我正在使用Nickel 框架rust-postgres为数据库制作一个 Rust 的 Web 应用程序。构建时出现以下错误:

通过 Cargo.lock,openssl 被 http(它是镍的依赖)和 rust-postgres 引用。

我的 Cargo.toml 看起来像这样:

这是完整的 Cargo.lock:

0 投票
1 回答
2008 浏览

rust - `cargo package` 错误:foo 的外部位置不存在

这里有非常简单的程序。我能够构建这个程序cargo build,正如你在 GitHub 页面中看到的那样,它也在 Travis-CI 上正确构建。

但是,该命令cargo package失败并出现以下错误:

我能够在 crates.io 上使用较旧的 rust 版本发布这个小型库。它改变了一些东西还是只是货物中的一个错误?(如果你仔细看,你可以看到路径中有混合的反斜杠和斜杠。)

锈版本是

货运版是

我正在使用 Windows 机器。

谢谢!

0 投票
6 回答
54464 浏览

rust - 为什么 Rust 可执行文件如此庞大?

刚刚找到 Rust 并阅读了文档的前两章,我发现他们定义语言的方法和方式特别有趣。所以我决定弄湿我的手指并从Hello world开始......

我在 Windows 7 x64 上这样做了,顺便说一句。

发布cargo build并查看结果,targets\debug我发现结果.exe为 3MB。经过一番搜索(货物命令行标志的文档很难找到......)我找到--release了选项并创建了发布版本。令我惊讶的是,.exe 的大小只变小了一点点:2.99MB 而不是 3MB。

所以,承认我是 Rust 及其生态系统的新手,我的期望是系统编程语言会产生一些紧凑的东西。

谁能详细说明 Rust 正在编译什么,它怎么可能从 3 班轮程序中生成如此巨大的图像?是编译成虚拟机吗?是否有我错过的条命令(发布版本中的调试信息?)?还有什么可以让我们了解正在发生的事情吗?