文档章节

rust01安装

AllenOR灵感
 AllenOR灵感
发布于 2017/09/10 01:17
字数 930
阅读 2
收藏 0
点赞 0
评论 0

安装

# 安装正式版本, 下载安装脚本
[root@localhost ~]# wget https://sh.rustup.rs -O rustup-init.sh
[root@localhost ~]# chmod 755 rustup-init.sh
# 运行安装脚本, 交互提示选择1默认安装
[root@localhost ~]# ./rustup-init.sh


# 或者 安装nightly版本
[root@localhost ~]# wget https://static.rust-lang.org/rustup.sh -O rustup-nightly.sh
[root@localhost ~]# chmod 755 rustup-nightly.sh
[root@localhost ~]# ./rustup-nightly.sh --channel=nightly 


# 查看安装好了之后, rust 各组件命令的二进制文件.
[root@localhost ~]# ls ~/.cargo/bin/
cargo  rls  rustc  rustdoc  rust-gdb  rust-lldb  rustup

# 手动将rust可执行文件目录加入到系统环境变量.
# 下次再次登录时就可以直接运行rust相关命令了.
[root@localhost ~]# echo "export PATH=\"$HOME/.cargo/bin:$PATH\" " >> ~/.bashrc

 

补充说明

rust并不会像其他编程语言一样, 直接将所有命令放置在系统的标准位置; 而是放置在当前用户的~/.cargo/bin目录下, 我的理解是谁安装它就谁可以用它, 由于我现在是处于学习状态, 所以暂时就不考虑如何标准部署安装.

  • cargo 是一个包管理器、项目工程依赖发布管理工具
  • rustc 是rust语言的解释器
  • rustup 是一个升级或者卸载的工具
  • 其他暂时不知道

 

验证

运行命令
# 将rust科执行文件路径加入到当前环境变量中
[root@localhost ~]# source ~/.bashrc

# 运行rustc, 查看版本号
[root@localhost ~]# rustc --version
rustc 1.18.0 (03fc9d622 2017-06-06)
重新登录, 再次运行
# 退出当前登录
[root@localhost ~]# exit

# 再次登录(不需要执行 source ~/.bashrc)
[root@localhost ~]# rustc --version
rustc 1.18.0 (03fc9d622 2017-06-06)

 

Hello World

使用 cargo 创建一个项目
# 创建一个项目集目录
[root@localhost ~]# mkdir projects
[root@localhost ~]# cd projects/

# 用cargo创建一个helloworld程序目录
[root@localhost projects]# cargo new helloworld --bin
     Created binary (application) `helloworld` project

# 进入程序目录     
[root@localhost projects]# cd helloworld

# 查看cargo都做了什么
[root@localhost helloworld]# ls
Cargo.toml  src

# 查看main.rs源文件
[root@localhost helloworld]# cat src/main.rs 
fn main() {
    println!("Hello, world!");
}

# 查看Cargo.html文件
[root@localhost helloworld]# cat Cargo.toml 
[package]
name = "helloworld"
version = "0.1.0"
authors = ["zhengtong <zhengtong0898@aliyun.com>"]

[dependencies]


# 运行代码
[root@localhost helloworld]# cargo run
   Compiling helloworld v0.1.0 (file:///root/projects/helloworld)
    Finished dev [unoptimized + debuginfo] target(s) in 0.46 secs
     Running `target/debug/helloworld`

Hello, world!
不使用 cargo 创建一个项目
[root@localhost ~]# cd ~/projects/

# 创建helloworld_manual项目目录
[root@localhost ~]# mkdir ~/helloworld_manual
[root@localhost ~]# cd ~/helloworld_manual

# 创建程序文件
[root@localhost helloworld_manual]# vim main.rs
fn main() {
    println!("Hello, world!");
}

# 将源代码编译成二进制文件
[root@localhost helloworld_manual]# rustc main.rs

# 查看变编译后的文件分布状态
[root@localhost helloworld_manual]# ls
main  main.rs

# 运行main二进制文件
[root@localhost helloworld_manual]# ./main
Hello, world!

rust 是工程语言
不知道在哪, 反正就是听说了rust是一名工程性质的语言, 它对项目的工程化是比较有要求的; 因此专门开发了一个cargo工具, 通过cargo我可以将编译、运行两个拆分执行步骤合并到一起, 只需要cargo run它就会帮我编译然后帮我运行程序。

  • fn
    声明一个函数的定义
  • main
    是函数名称, 同事它也是一个特殊的函数, 它在项目文件中是必须存在的, 运行入口在这里.
  • 括号()
    括号用来传递参数.
  • println!
    是rust内置的打印到标准输出的命令, !是一个宏(macro), 暂时还不是很清楚它的本质含义.
  • 分号;
    每行执行代码(花括号后面不需要)后面都要写上分号.
  • rustc
    用来将源代码文件编译成二进制文件, 它会检查语法.
  • cargo
    在单一文件中看不出来它的作用, 但是实际上它负责着项目依赖组件的管理(自动下载)、更新和各个依赖组件的版本号控制;
  • cargo run
    将编译和运行两个步骤合并在一起;

本文转载自:http://www.jianshu.com/p/2d80f2fbb0ca

共有 人打赏支持
AllenOR灵感
粉丝 10
博文 2634
码字总数 82983
作品 0
程序员

暂无文章

一款成功的全球服游戏该如何进行架构选型与设计?

全球服游戏如今正在成为出海游戏的主要考虑模式,跨国对战、全球通服打破国界的限制,将不同地区不同语言的玩家放在一起合作/竞技,成功吸引了大量玩家的关注,并逐渐成为主流的游戏玩法。 ...

UCloudTech
1分钟前
0
0
StringUtils类中isEmpty与isBlank的区别

org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String str)。 StringUtils.isEmpty(String str) 判断某字符串是否为...

说回答
13分钟前
0
0
react native使用redux快速上手

先看个简单demo //app.jsimport React, {Component} from 'react';import {StyleSheet, Button, View} from 'react-native';import TestView from './src/testView'export default......

燕归南
15分钟前
0
0
页面输出JSON格式数据

package com.sysware.utils;import java.io.IOException;import javax.servlet.ServletResponse;import org.apache.log4j.Logger;import com.sysware.SyswareConstant;pub......

AK灬
36分钟前
0
0
springCloud-2.搭建Eureka Client的使用

1.使用IDEA,Spring Initializr创建 2.填写项目资料 3.选择spring boot版本,插件选择Cloud Discovery→Eureka Discovery 4.选择保存地址 5.修改application.yml eureka: client: s...

贺小康
39分钟前
0
0
CenOS 6.5 RPM 安装 elasticsearch 6.3.1

下载 wget --no-check-certificate https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.1.rpm...

阿白
42分钟前
0
0
1.4 创建虚拟机&1.5 安装CentOS7&1.6 配置ip(上)&1.7 配置ip(下)

1.4 创建虚拟机 知识点 虚拟机网络链接模式 桥连 直接将虚拟网卡桥接到一个物理网卡上面。需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主...

小丑鱼00
48分钟前
0
0
TrustAsia(亚洲诚信)助力看雪2018安全开发者峰会

2018年7月21日,看雪2018安全开发者峰会在北京国家会议中心圆满落下帷幕。拥有18年悠久历史的老牌安全技术社区——看雪学院联手国内最大开发者社区CSDN,汇聚业内顶尖的安全开发者和技术专家...

亚洲诚信
50分钟前
0
0
Spring注解介绍

@Resource、@AutoWired、@Qualifier 都用来注入对象。其中@Resource可以以 name 或 type 方式注入,@AutoWired只能以 type 方式注入,@Qualifier 只能以 name 方式注入。 但它们有一些细微区...

lqlm
今天
0
0
32位汇编在64位Ubuntu上的汇编和连接

本教程使用的操作系统是Ubuntu Linux 18.04 LTS版本,汇编器是GNU AS(简称as),连接器是GNU LD(简称ld)。 以下是一段用于检测CPU品牌的汇编小程序(cpuid2.s): .section .dataoutput...

ryanliue
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部