共计 2591 个字符,预计需要花费 7 分钟才能阅读完成。
学 Rust,收费拿树莓派
本次学习 Rust 真是从 0 开始,之前从未应用过虚拟机,也从未独立搭建过 Docker 环境;废话不多说,咱们开始吧
# Rust 三问
Rust 是什么?
Rust 是一门零碎编程语言 (Systems Programming Language),兼顾平安(Safety)、性能(Speed) 和并发(Concurrency)。
Rust 能够用来干啥?
Rust 作为一门底层的零碎编程语言,实践上,应用 C/C++ 的畛域都能够应用 Rust 实现,例如对硬件须要精密管制的嵌入式编程、对性能要求极高的应用软件(数据库引擎、浏览器引擎,3D 渲染引擎等)。
Rust 和其余同类型的语言有什么劣势?
绝对于 C/C++ 的系统性缺点(内存治理不当造成的安全漏洞),Rust 通过所有权 (Ownership) 机制在编译期间确保内存平安,无需垃圾回收(Garbage Collection, GC),也不须要手动开释内存。
# 搭建 Rust 环境的整体思路
- 办法 A:
如果是 Win7/8 能够通过部署虚拟机,虚拟机再装置 Ubuntu Server 20.04 TLS 和 Rust,如果是 Win10 则能够抉择在利用市场装置 Ubuntu Server 20.04 TLS。 - 办法 B:
应用 Docker
这里我应用的是 Ubuntu 虚拟机搭建 Rust。
# 虚拟机 Ubuntu 环境搭建 Rust
# Install Rust
# 既然咱们要用 Rust 写函数,也须要装置 Rust 语言的编译器与工具。# 如果感觉慢,能够应用中科大镜像,应用办法请自行搜寻
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ source $HOME/.cargo/env
# Install Node.js
$ curl -sL https://deb.nodesource.com/setup_14.x | bash
$ apt-get install -y nodejs
# Install ssvmup toolchain
# 最初,ssvmup 工具主动执行构建过程并生成所有工件,使 Node 应用程序能够轻松调用 Rust 函数。同样,须要装置 ssvmup 依赖项。$ npm install -g ssvmup # Append --unsafe-perm if permission denied
# OS dependencies for SSVM
$ sudo apt-get update
$ sudo apt-get -y upgrade
$ sudo apt install build-essential curl wget git vim libboost-all-dev
# Install the nodejs addon for SSVM
$ npm install ssvm
# 第一个 Rust 程序
fn main() {
let txt = "Hello, world!";
println!("I say : {}", txt);
}
应用 fn
申明函数,和 JavaScript
倒是大不相同。main()
是 Rust
程序的默认入口,println!
示意打印文本到控制台。
Rust
输入文字的形式次要有两种:println!()和 print!()。这两个 ” 函数 ” 都是向命令行输入字符串的办法,区别仅在于前者会在输入的最初附加输入一个换行符。
# 我做了什么
做了一个九九乘法表,哈哈哈!最终代码:GitHub
# 遇到的问题
Q:Win10 Linux 子系统运行命令 rust init,速度太慢
把脚本中的 RUSTUP_UPDATE_ROOT 变量改为中国科学技术大学的镜像
# 中国科学技术大学
RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup
Q:Win10 Linux 子系统运行命令 rust init,提醒异样
thread 'main' panicked at 'assertion failed: `(left == right)
...
thread panicked while panicking. aborting.
Illegal instruction (core dumped)
对于此异样的探讨:
- rustup panic with WSLv1 + glibc 2.31 · Issue #2245 · rust-lang/rustup · GitHub
- 在 Linux 的 Windows 子系统中的 Ubuntu 20.04 上装置 rust
- 在 WSL2(Windows10)的 Ubuntu 中构建 Rust 语言开发环境
解决办法:
- use older linux versions
2020 年 8 月 24 日,大陆区微软商店中只有 Ubuntu 20.04,而且升高版本的话也与本次课题举荐的版本不符了。 - some users report that exporting RUSTUP_IO_THREADS=1 mitigates the problem
应用这个命令,没有再提醒异样,但再执行curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
却不会有任何信息和进度展现 - use WSLv2
2020 年 8 月 24 日,没有胜利,我的 Window 10 版本号是 1909,操作系统版本是 18363.1016
须要操作系统版本最低 18917,更新办法见如何如何手动装置 Windows 10 WSLv2
更具体的装置 / 降级介绍能够查看微软官网文档——Windows Linux 子系统 Windows 10 装置指南
Q:Win10 —— 您的主机不满足在启用 Hyper-V 或 Device/Credential Guard 的状况下运行 VMware Workstation 的最低要求。
解决办法
Q:Ubuntu —— 通过 npm install -g ssvmup 增加了 ssvmup,然而执行 ssvmup buil 零碎又提醒 : You have not installed ssvmup。
其实须要在 rust 文件所在目录上运行,最初我将 ssvmup 装置在全局,并同时将 ssvmup 装置在单我的项目中,通过 npm srcipt 来运行 ssvmup 命令
# 总结
Rust 是一门年老的且充斥后劲的编程语言 [狗头]。
# 参考
- ???? 树莓派上的高性能 Node.js 利用
- Linux Ubuntu 常用命令总结
- Rust 扼要教程 | 疾速入门
- 了不起的 Rust – 利用案例