这是我在Atom中的代码,安装了Atom-Language-Rust软件包:
use std::{i8, i16, i32, i64, u8, u16, u32, u64, isize, usize, f32,
f64};
use std::io::stdin;
fn main() {
println!("Hello, world!");
}
这是我输入终端的内容:
rustc hello_world.rs -A warning
./hello_world.rs
这是错误消息:
./hello_world.rs: line 1: use: command not found
./hello_world.rs: line 2: use: command not found
./hello_world.rs: line 4: syntax error near unexpected token `('
./hello_world.rs: line 4: `fn main() {'
我在代码或设置中做错了什么?
答案 0 :(得分:8)
您正在尝试执行源代码文件,而不是已编译的二进制文件。编译的重点是获取源代码并生成可执行文件。你想要
rustc hello_world.rs
./hello_world
让我们讨论所有其他问题:
最重要的是,您似乎在积极避免使用现有的惊人的和免费资源来学习Rust。具体来说,我强烈建议你停止正在做的事情并阅读The Rust Programming Language, second edition的前几章。那里介绍了如何调用编译器和执行代码。提示:很少有人直接执行rustc
,所有人都有很好的理由这样做。
Rust编译器会告诉你一个有用的提示世界。这些被称为 lints 。但是,您似乎正在尝试通过-A warning
禁用lints 。作为初学者,忽略编译器的提示是一个非常糟糕的主意。
-A warning
甚至无效。试图使用它,我得到错误
错误:未知lint:`warning`
我有兴趣知道你在哪里学到了这一点,所以我们可以尝试从源头纠正错误信息。
您已导入 way 超出需要的内容。 无需要通过use
导入的行 - 编译器会在您阅读警告时告诉您。
对这个问题进行一点探索......
不知何故,您已保存源代码文件并将其标记为可执行文件。当您尝试执行它时,操作系统和/或shell会检查它是否是二进制文件。如果不是,则会尝试将该文件视为 shell脚本。 Shell脚本在开头有一个名为 shebang (#!
)的特殊行,用于说明应该使用哪个解释器。由于此文件没有,因此假定它是/bin/sh
解释器的shell脚本。
因此,/bin/sh
会传递您的Rust代码并尝试逐行运行它。这就是所有错误 - shell抱怨它尝试的每一行都没有语法上的有效。