关于rust:Rust学习总结-写-Rust-函数免费拿树莓派

129次阅读

共计 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 – 利用案例

正文完
 0