【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 ...
随机推荐
- windows中的换行符和Linux中的换行符
# cat -A tmp.tmp 120.4987 12.717858^M$ ^M 对应的字符是 \r # cat tmp.txt | awk -vRS='\r\n' '{print $2,$1}' ...
- 03 Proxmox VE介绍
突破困境! 企业开源虚拟化管理平台 使用Proxmox Virtual Environment 郑郁霖(Jason Cheng)著 版次:2021年12月初版 03 Proxmox VE介绍 3.1 ...
- HTML学习笔记3----制作一个简易网站
随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...
- 单个表空间文件个数达到上限 ORA-01686
# 问题概述因在oracle数据库表空间管理中的时候 报 ORA-01686: max # files (1023) reached for the tablespace GPRS SQL> a ...
- Day 22 22.1:增量式爬虫
Day 22 22.1:增量式爬虫 爬虫应用场景分类 通用爬虫 聚焦爬虫 功能爬虫 分布式爬虫 增量式爬虫: 用来监测网站数据更新的情况(爬取网站最新更新出来的数据). 只是一种程序设计的思路,使用什 ...
- Comparator与Comparable实现List中某一对象属性排序
//实体类实现 Comparable接口 进行降序排序 public class TestCompare implements Comparable<TestCompare>{ priva ...
- centos7 部署 DNS 主从
centos7 部署 DNS 主从 环境 名称 ip地址 cpu 内存 yz-dns-master 10.148.100.81 4c 8G yz-dns-slave 10.148.100.82 4c ...
- get与post区别,https协议的通信机制
get与post区别 幂等的的意思就是一个操作不会修改状态信息,并且每次操作的时候都返回同样的结果.即:做多次提交和做一次的对服务器效果是一样 的. 方法 用法 是否能修改服务器数据 幂等 安全 入参 ...
- ORACLE查看表占用空间的大小
查询object的大小,按照降序排序 select * from user_segments s where s.BYTES is not null order by s.BYTES desc ...
- C#读取XML字符串及将XML字符串反序列化为对象
在开发中遇到调用接口范围XML格式结果情况,获取结果中我们需要的信息则可能需要这两种数据处理: 1.如何将xml字符串转换为xml对象,及查询想要的节点: 通过XmlDocument对象加载xml字符 ...