首页 文章

“bin目标必须可用于'cargo run'”

提问于
浏览
3

在Intellij IDEA 2017中构建新的Rust“Project from Project”时,我无法通过其UI运行该项目 .

C:/Users/sjsui/.cargo/bin/cargo.exe运行错误:货物运行必须有货柜目标流程已完成退出代码101

我注意到我的构建配置没有提供--bin目标,所以我将路径放到项目目标文件夹中;同样的结果 .

enter image description here

C:/Users/sjsui/.cargo/bin/cargo.exe运行--bin C:\ Users \ sjsui \ exercism \ rust \ hello-world \ target \ debug错误:没有bin目标名为C:\ Users \ sjsui \ exercism \防锈\你好世界\目标\调试

我尝试通过Cargo命令行界面创建一个新的Rust项目,并在运行时收到此错误:

错误:无法执行链接器link.exe:系统找不到指定的文件 . (os error 2)注意:msvc目标依赖于msvc链接器但找不到link.exe注意:请确保使用Visual C选项安装了VS 2013或VS 2015

显然我必须安装2017年的Visual C构建工具,并且我正在这样做 . 这些错误是相关的还是不同的问题?

2 回答

  • 5

    默认情况下,Cargo会将文件 src/main.rs 视为程序包的主要二进制目标 . 如果此文件不存在,并且 Cargo.toml 中没有定义其他二进制目标,则会出现此错误 .

    According to the documentation,在IntelliJ IDEA中创建Rust项目时,您可以选择使用二进制(应用程序)模板 . 这应该给你一个 src/main.rs 而不是 src/lib.rs (这是库目标的默认根文件) . 在命令行上使用Cargo,您还可以使用cargo new --bin创建应用程序包(不使用 --bin ,Cargo创建库) .

    cargo run 命令上使用 --bin 时,如果 Cargo.toml 中没有 [[bin]] 部分,则参数引用 Cargo.toml 中的[[bin]]部分之一,或者模式 src/bin/*.rs 之后的文件(参数替换 * ) . 例如, cargo run --bin foo 将编译并在 Cargo.toml 中使用 name = "foo" 运行 src/bin/foo.rs[[bin]] 部分 .

  • 0

    除了弗朗西斯加涅的好答案..如果有人想知道如何解决这个错误:

    错误:无法执行链接器link.exe:系统找不到指定的文件 . (os error 2)注意:msvc目标依赖于msvc链接器但找不到link.exe注意:请确保使用Visual C选项安装了VS 2013或VS 2015

    然后按照this guide over at github.

相关问题