"垃圾箱目标必须可用于'货物运行'"

Sam*_*l J 5 intellij-idea rust

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

C:/Users/sjsui/.cargo/bin/cargo.exe运行错误:bin目标必须可用于 cargo run

处理以退出代码101结束

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

在此输入图像描述

C:/Users/sjsui/.cargo/bin/cargo.exe运行--bin C:\ Users\sjsui\exercism\rust\hello-world\target\debug错误:没有bin目标命名 C:\Users\sjsui\exercism\rust\hello-world\target\debug

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

错误:无法执行链接器link.exe:系统找不到指定的文件.(os error 2)注意:msvc目标依赖于msvc链接器但未link.exe找到

注意:请确保使用Visual C++选项安装VS 2013或VS 2015

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

Fra*_*gné 7

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

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

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