问题标签 [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.
rust - `货物包`:错误:找不到主要功能
我正在尝试使用cargo
Rust 的包管理器来打包一个库。当我尝试cargo package
按照文档运行时,我得到以下输出:
我很困惑。我正在尝试打包一个库(带有有用的外部函数),所以我希望我不需要main
函数。这是我的Cargo.toml
:
这是我的目录结构:
我错过了什么?
rust - 货物中的自定义cfg目标?
我将如何在货物中做到这一点?这features
是为了什么?
功能似乎仅适用于可选依赖项。
rust - Cargo 将 git 要求放在哪里?
编译项目时,cargo 会自动下载 Cargo.toml 中指定的需求,以 git-repository 的形式给出。
例如
将导致
编译时。它将这些存储库保存在我的磁盘上的什么位置?我正在使用 Windows,这会改变什么吗?
undefined-reference - 使用 Rust Cargo 构建时出现未定义的引用错误
使用 Cargo 构建项目时收到以下错误消息:
我已经读到我可能可以添加-lz
标志来防止这种情况,但是我该如何使用 Cargo 来做到这一点?
rust - 静态链接使用 regex_macros 的二进制文件
我刚刚意识到,当我使用regex_macros
crate 时,通过 Cargo 创建的 Rust 二进制文件是动态链接的。这有点问题,因为当我更新到更新版本的regex_macros
.
有办法解决吗?
这是一个最小的例子:
编译它并查看链接的内容揭示了这一点:
如您所见,第一个链接的 dylib 有一个进入项目所在目录的绝对路径,即使这样做cargo clean
也可能会破坏可执行文件。
shared-libraries - 从货物 dylib 命名中删除哈希扩展
货运.toml
每当我执行cargo build
我的 dylib 时,都会命名为:
libfaceblaster-engine-f09635dc7c9bd155.so
.
无论如何要在.toml
文件中添加一些东西以删除放在最后的哈希?
提前感谢您的帮助!
rust - 如何让 Cargo 运行本地依赖项测试?
我正在处理一个跨多个板条箱拆分的项目。顶级 crate(应用程序)需要另外两个 crate(库)作为依赖项。在顶级 crate 中运行cargo test
会构建依赖项并为顶级 crate 运行测试,但不会为其他两个 crate 运行测试。有没有一种配置方法可以cargo test
在所有三个 crate 中运行测试?
谢谢!
openssl - 如何防止多个依赖项链接到同一个本机库?
问题:如何解决(或修复)我的两个依赖项链接到同一个库但该库不能链接两次的情况?这似乎通常可以通过共享库来解决,但我不确定如何使用 Rust 来解决它。
细节:
我正在使用Nickel 框架和rust-postgres为数据库制作一个 Rust 的 Web 应用程序。构建时出现以下错误:
通过 Cargo.lock,openssl 被 http(它是镍的依赖)和 rust-postgres 引用。
我的 Cargo.toml 看起来像这样:
这是完整的 Cargo.lock:
rust - `cargo package` 错误:foo 的外部位置不存在
我这里有非常简单的程序。我能够构建这个程序cargo build
,正如你在 GitHub 页面中看到的那样,它也在 Travis-CI 上正确构建。
但是,该命令cargo package
失败并出现以下错误:
我能够在 crates.io 上使用较旧的 rust 版本发布这个小型库。它改变了一些东西还是只是货物中的一个错误?(如果你仔细看,你可以看到路径中有混合的反斜杠和斜杠。)
锈版本是
货运版是
我正在使用 Windows 机器。
谢谢!
rust - 为什么 Rust 可执行文件如此庞大?
刚刚找到 Rust 并阅读了文档的前两章,我发现他们定义语言的方法和方式特别有趣。所以我决定弄湿我的手指并从Hello world开始......
我在 Windows 7 x64 上这样做了,顺便说一句。
发布cargo build
并查看结果,targets\debug
我发现结果.exe
为 3MB。经过一番搜索(货物命令行标志的文档很难找到......)我找到--release
了选项并创建了发布版本。令我惊讶的是,.exe 的大小只变小了一点点:2.99MB 而不是 3MB。
所以,承认我是 Rust 及其生态系统的新手,我的期望是系统编程语言会产生一些紧凑的东西。
谁能详细说明 Rust 正在编译什么,它怎么可能从 3 班轮程序中生成如此巨大的图像?是编译成虚拟机吗?是否有我错过的条命令(发布版本中的调试信息?)?还有什么可以让我们了解正在发生的事情吗?