首页 > 其他分享 >01_搭建和试用开发环境

01_搭建和试用开发环境

时间:2023-10-09 16:36:15浏览次数:48  
标签:cargo 01 rs -- 试用 world hello rust 搭建

rust的官网 https://www.rust-lang.org/

1. 安装、卸载rust

windows环境
下载windows安装包
image
双击后进入命令行安装,按照提示输入数字选项安装即可。
image
如果系统中缺少c++的库,会提示先安装visual studio。
image

linux or MAC:

curl https://sh.rustup.rs -sSf | sh

Windows Subsystem for Linux:

curl --proto '=https’ --tlsv1.2 -sSf https://sh.rustup.rs| sh

更新/卸载

# 更新
rustup update
# 卸载
rustup self uninstall

验证安装结果
启动命令行窗口,输入

rustc --version
rustc 1.72.0 (5680fa18f 2023-08-23)

结果格式:rustc x.y.z (abcabcabc yyyy-mm-dd)
显示最新稳定版的:版本号、commit hash、commit 日期


查看本地文档
rust同时会安装上本地帮助文档,便于离线浏览。
运行rustup doc可跳转到浏览器打开本地文档。

可用的开发工具:vs code / clion + 各自的rust插件即可


2. 测试hello world

创建源文件hello_world.rs,文件后缀是.rs。

fn main() { // 定义主函数,无参无返回值,程序入口
    println!("hello world"); // 4个空格,println!是一宏,不是函数,分号结尾
}

编译 rustc hello_world.rs会生成可执行文件,在命令行运行即可打出hello world。
在windows下还会生成一个.pdb文件,是一调试信息文件。

rust语言是一种静态编译的语言,即目标可执行文件是指令级二进制的,目标机器可不用安装rust。


3. cargo工具

上面安装rust时会自动安装上cargo,它是rust的构建系统和包管理工具,负责构建代码、下载依赖库、构建并启动运行等。
一样的,在命令行输入cargo --version查看是否成功。

> cargo --version
cargo 1.72.0 (103a7ff2e 2023-08-15)

使用cargo创建项目
使用命令 cargo new 项目名称

cargo new hello_cargo

执行后自动创建了一个项目文件夹,含以下文件

+--- .gitignore # 这是因自动初始化了一新的git仓库,并创建ignore文件
+--- Cargo.toml # 配置文件,用于配置依赖库等信息,配置后cargo在编译时会自动去下载依赖库
+--- src
|   +--- main.rs # 主函数文件,里边已一hello world程序,可直接编译运行

注:如果不使用VCS,要使用--vcs选项,命令cargo new --vcs hello_cargo

  • Cargo.toml的内容
    其中.toml含义:Tom's Obvious, Minimal Language,cargo的配置格式。
[package] # 一个区域标题,表示下方内容是用来配置包(package)的
name = "hello_cargo" # 项目名
version = "0.1.0" # 项目版本
edition = "2021" # 使用的rust版本
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies] # 另一个区域开始,dependencies区域
# 所有依赖添加在这里,比如如下配置
rand = "^0.3.14" # 引入依赖rand库(crate),版本是0.3.14,^表示只要与0.3.14兼容版本皆可
  • src/main.rs的内容
fn main() {
    println!("Hello, world!");
}

顶层目录可放置README、许可信息、配置文件、其它与程序源码无关的文件
如果创建项目时未使用cargo,也可转换成cargo,只需

  • 将所有源文件移动到src下
  • 创建出一个Cargo.toml文件

cargo build 构建项目,会在target/debug/目录下生成可执行文件hello_cargo / hello_cargo.exe
第一次运行会在顶层目录生成cargo.lock文件,用于追踪项目依赖的精确版本,无需手动修改。

cargo run 构建并运行项目,若之前已编译成功且无修改,则会直接运行二进制。

cargo check 检查代码,确保能编译通过,但不生成可执行文件。比cargo build快,提高效率。

cargo build --release 用于编译发布版本,编译时进行优化,编译耗时更长,会在target/release下生成可执行文件。

标签:cargo,01,rs,--,试用,world,hello,rust,搭建
From: https://www.cnblogs.com/UFO-blogs/p/17752043.html

相关文章

  • Docker 搭建 SonarQube8.3 社区版
    Docker搭建SonarQube8.3社区版 docker安装sonarQube 参考: https://www.cnblogs.com/shenh/p/13428029.html为了测试,使用Docker搭建SonarQube8.3社区版步骤#创建sonarqube工作目录,映射目录都放在这里mkdir-p/usr/local/sonarqube&&cd/usr/local/so......
  • xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance(xsi:schemaLocation详解)
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"中xsi的意思是:本xml文件中要用到某些来自xsi代表的“http://www.w3.org/2001/XMLSchema-instance”这个命名空间的元素 比如用来引入无命名空间schema文件的noNamespaceSchemaLocation="XXX";以及引入自带命名空间的sch......
  • NTP服务器搭建
    linux时间服务器NTP搭建原创 宫关 运维DevOps 2023-08-3108:58 发表于广东收录于合集#linux17个#服务器6个NTP(NetworkTimeProtocol,网络时间协议)是用于同步计算机系统时钟的协议。在配置NTP时间服务器时,你可以选择使用公共的NTP服务器或者搭建自己的NTP......
  • [极客大挑战 2019]HardSQL
    原理用fuzz字典来爆破哪些关键字被过滤了sql语句可以不用空格,仅用括号来隔开username=1'or(updatexml(1,concat(0x7e,database()),1))%23url编码一些值:%20空格%23#。。。and关键字可以用^来代替,=可以用like来代替。有时候不写空格也挺方便的,直接省略过滤空格的可能性截取字......
  • [ZJCTF 2019]NiZhuanSiWei
    原理反序列话伪协议data和filter解题过程进入靶场看到源码<?php$text=$_GET["text"];$file=$_GET["file"];$password=$_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcometothezjctf"......
  • [HCTF 2018]admin
    原理Unicode欺骗弱口令session伪造解题过程进入靶场,有注册和登录按钮,再看原代码看到/posts链接,但是点了是404,还有登录和注册链接,之后就是youarenotadmin的提示,估计是要变成admin登录解法一弱口令登录最终爆破得出密码是123,登录拿到flag解法二unicode编码欺骗参......
  • [护网杯 2018]easy_tornado
    原理模板render的handler.settings窃取cookie_secret解题过程进入靶场有三个超链接查看原代码看到三个超链接地址<ahref='/file?filename=/flag.txt&filehash=85e5682df55f8ca33e9d791703ca4cb1'>/flag.txt</a><br/><ahref='/file?filename=/welcome.txt&fil......
  • [极客大挑战 2019]BuyFlag
    原理弱比较问题科学计数法绕过cookie字段的修改解题过程进入靶场,页面没什么提示,就先看下原代码吧看到有两个超链接,现在这个页面是index.php,看一下flag.php有这几个提示,要满足两个条件咯,再看下原代码发现有后端源码,也就是说要传入password和money,这里的源码需要password......
  • P4801题解
    解题思路:确实是一道很好的贪心,但由于加上了水这个影响因素,使题目复杂度上升了不少。(考虑的东西多了嘛)输个入。对饼干温度无脑排序。求最小值。求最大值(用双指针做,后面会讲)。解题过程:先输入(这个步骤就不用我讲了)inta[1000005];longlongn,ws;longlongmin......
  • [ICPC2015WF] Tours
    题目描述TheArcaCaraniaMountainnationalparkisopeningupfortouristtraffic.Thenationalparkhasanumberofsitesworthseeingandroadsthatconnectpairsofsites.Theparkcommissionershaveputtogetherasetofroundtoursintheparkinwhich......