【Rust入门】(一)构建自己的第一个Rust项目
安装Rust
参考文档,指定安装目录和镜像配置。
rustc --version 检查是否安装成功。
构建程序
使用rustc编译运行
rustc
编译:rustc main.js
运行:
- Windows:
.\main.exe或main - Linux:
./main
注意:
- 编译成功后会生成一个二进制文件。在Windows上还会生成一个
.pdb文件,里面包含调试信息; - Rust是ahead-of-time编译的语言(预编译),执行可执行文件无需安装Rust;
rustc只适合简单的Rust程序。
程序解剖
fn main() {
println!("Hello World");
}
main()函数是每个Rust可执行程序最先运行的代码;- Rust的缩进是4个空格而不是tab;
println!()是一个Rust macro(宏)。
问题解决
问题:VSCode打开项目时报错:rust-analyzer failed to load workspace
解决:项目下新建文件 setting.json,增加如下内容
{
"rust-analyzer.server.extraEnv": {
"CARGO": "cargo.exe"
}
}
使用Cargo构建
Cargo
Cargo是Rust的构建系统和包管理工具。
安装Rust时会自动安装Cargo,cargo --version 检查是否安装成功。
创建项目
cargo new hello_cargo
项目结构
Cargo.toml:TOML格式是Cargo的配置格式package:包的配置(Rust的包称作crate)dependencies:依赖
src目录main.rs
.gitignore:cargo new时使用--vcs来自定义是否使用vcs
创建项目时没有使用cargo,也可以将项目改成上述结构来使用cargo。
命令
cargo build:构建项目
- 创建可执行文件:
target\debug\hello_cargo.exe - 生成
cargo.lock文件,负责追踪项目依赖的精确版本,不需要手动修改该文件
cargo run:构建和运行项目
cargo check:编译检查,但不生成可执行文件(开发过程中可反复调用,提高效率)
cargo build --release:为发布构建项目
- 编译时会进行优化
- 创建可执行文件:
target\release\hello_cargo.exe
【Rust入门】(一)构建自己的第一个Rust项目的更多相关文章
- Google C++测试框架系列入门篇:第二章 开始一个新项目
上一篇:Google C++测试框架系列入门篇:第一章 介绍:为什么使用GTest? 原始链接:Setting up a New Test Project 词汇表 版本号:v_0.1 开始一个新项目 ...
- Flutter入门教程(四)第一个flutter项目解析
一.创建一个Flutter工程 1.1 命令行创建 首先我们找一个空目录用来专门存放flutter项目,然后在路径中直接输入cmd: 使用 flutter create <projectname ...
- node项目的基本构建流程或者打开一个node项目的流程
1. 确立项目所需要的所有依赖.框架(比如bootstrap,vue,angular等) 2. 在项目的根目录下创建一个package.json文件,package.json文件是项目的最重要文件之 ...
- ASP.NET + MVC5 入门完整教程三 (上) ---第一个MVC项目
https://blog.csdn.net/qq_21419015/article/details/80420815 第一个MVC应用程序 1创建MVC项目 打开VS ,File--新建--项目,选择 ...
- java学习入门之---使用idea创建第一个maven项目
一.准备条件: 1.安装idea旗舰版 2.安装tomcat 二.打开idea开始创建 1.创建Project 2.选择项目类型为maven 3.输入组名和项目名 ---> 下一步 ----&g ...
- eclipse中创建一个maven项目
1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...
- Maven(一)如何用Eclipse创建一个Maven项目
1.什么是Maven Apache Maven 是一个项目管理和整合工具.基于工程对象模型(POM)的概念,通过一个中央信息管理模块,Maven 能够管理项目的构建.报告和文档. Maven工程结构和 ...
- 基于Maven构建开发第一个Storm项目
前面说过了Storm的测试项目,那么此时我们更想自己写一个小项目来练练手,首先我们自己的Windows系统上首先应该安装好maven,然后启动Eclipse for JavaEE版本,接下来开始建立项 ...
- Rust入门篇 (1)
Rust入门篇 声明: 本文是在参考 The Rust Programming Language 和 Rust官方教程 中文版 写的. 个人学习用 再PS. 目录这东东果然是必须的... 找个时间生成 ...
- 5分钟APIG实战: 使用Rust语言快速构建API能力开放
序言:Rust语言简介 参与过C/C++大型项目的同学可能都经历过因为Null Pointer.Memory Leak等问题“被” 加班了不知道多少个晚上.别沮丧,你不是一个人,Mozilla Fir ...
随机推荐
- TP5--数据库基本操作
/** * 插入数据 * 执行成功返回影响数据的条数,执行失败返回false */ //添加一条数据 $data = [ 'name'=>'wangwu', 'pwd'=>123456 ] ...
- xd p3 搭建安全扩展
常见搭建平台脚本启用 常见平台java Python php jsp搭建要启用脚本 中间件(搭建平台):Apache IIS Tomcat Nginx 主机头值 即 域名 域名IP目录解析安全问题 域 ...
- JAVA课程设计(附源码)
Java课程设计选题 Java课程设计说明 本次课程设计的目的是通过课程设计的各个项目的综合训练,培养学生实际分析问题.编程和动手能力,提高学生的综合素质.本课程设计尝试使用一些较生动的设计项目,激发 ...
- C# goto 语法
test: Console.WriteLine("yest"); goto test;
- ComPiler200002:Growing a Compiler
http://www.cs.dartmouth.edu/~mckeeman/cs48/mxcom/gem/html/GrowingCompiler.html by Bill McKeeman and ...
- URAL2127 Determinant of a Graph 题解
这个题真的折磨了我超久的.全网几乎搜不到一个详细的题解,俺来写写吧. 题意:给你一个无自环无重边的连通无向图,求它邻接矩阵的行列式的值. \(n\le 2*10^5,n-1\le m \le n+50 ...
- C#当窗体大小改变时,窗体中的控件大小也随之改变
第一种:推荐 在窗体中加上如下代码即可实现,但窗体点击放大按钮时却不能改变控件大小. private Size beforeResizeSize = Size.Empty;protectedoverr ...
- 敌兵布阵 HDU - 1166 - 单点修改,区间查询:树状数组/线段树
C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况.由于 ...
- JS学习-异步JS
异步JS setTimeout() 我们希望传递给setTimeout()中运行的函数的任何参数,都必须作为列表末尾的附加参数传递给它. function sayHi(who) { alert('He ...
- Software--电商平台系统--P2 支撑基础设施 Infrastructure
2018-01-11 18:19:49 架构 客户体验 Ajax 交互技术. 网站快速加载且响应灵敏,则应该缓存商品数据. 灵活的缓存机制,以支持任何类型的存储(即分布式存储或内存中存储). 日志功 ...