首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >运行`rustc`检查程序,不生成任何文件

运行`rustc`检查程序,不生成任何文件
EN

Stack Overflow用户
提问于 2018-07-24 03:16:37
回答 2查看 299关注 0票数 7

cargo check所示,在不实际生成代码的情况下检查程序的格式是否良好通常很有用(这通常是一项非常耗时的任务)。我想用rustc直接检查单个(库) Rust文件(我不能使用Cargo!)。

cargo check显然是通过调用以下代码来工作的:

代码语言:javascript
复制
rustc --emit=metadata -Z no-codegen

这只会发出元数据,即一个.rmeta文件。货物实际上需要根据检查过的板条箱来检查板条箱。在我的例子中,我真的不需要元数据文件。

我尝试了以下几种方法:

代码语言:javascript
复制
rustc --crate-type=lib --emit=
rustc --crate-type=lib --emit=nothing

但这两种方法都不起作用。我使用--crate-type=lib是因为我的文件没有main函数。我需要一个独立于平台的解决方案(我不仅想在我的机器上使用它,还想在一个公共脚本中使用它)。

如何让 rustc 不写入单个文件?

EN

回答 2

Stack Overflow用户

发布于 2018-07-24 04:05:47

您可以跳过--emit标志。

最后的命令是:rustc -Z no-codegen rust.rs

票数 3
EN

Stack Overflow用户

发布于 2018-12-31 17:42:06

关于这个问题,引用my own GitHub comment的话,稳定生锈有几个选择:

  • rustc --emit=mir -o /dev/null似乎可以在1.18和更高版本中工作,什么也不写。(--emit=mir是唯一有用的--emit选项-其他选项试图创建像/dev/null.foo0.rcgu.o这样的愚蠢文件,除了没有checking.)
  • rustc -C extra-filename=-tmp -C linker=true--emit=dep-info (即使用/bin/true作为“链接器”)似乎在所有版本中都有效,编写一些中间文件,但清除它们up.
  • rustc --out-dir=<new empty temporary directory>不那么聪明,因此可能不太可能崩溃?

请注意,前两个选项不会发现链接器错误(也不会通过nightly-only -Zno-codegen选项)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51485765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档