当前位置: 首页 > news >正文

【ChatGPT辅助学Rust | 基础系列 | Hello, Rust】编写并运行第一个Rust程序

在这里插入图片描述

文章目录

  • 前言
  • 一,创建项目
  • 二,两种编译方式
    • 1. 使用rustc编译器编译
    • 2. 使用Cargo编译
  • 总结

前言

在开始学习任何一门新的编程语言时,都会从编写一个简单的 “Hello, World!” 程序开始。在这一章节中,将会介绍如何在Rust中编写并运行第一个程序。

一,创建项目

在终端中,使用Cargo(Rust的构建系统和包管理器)创建一个新的二进制项目。输入以下命令:

cargo new hello_rust

这将会在当前目录下创建一个名为 “hello_rust” 的新目录,其中包含了一个基本的Rust项目。进入这个新创建的目录:

cd hello_rust

在 “hello_rust” 目录中,会看到一个名为 “src” 的目录和一个 “Cargo.toml” 文件。“src” 目录是源代码的存放位置,“Cargo.toml” 文件是项目的配置文件。

在 “src” 目录中,有一个名为 “main.rs” 的文件,这是Rust程序的入口点。打开 “main.rs” 文件,会看到以下内容:

fn main() {println!("Hello, world!");
}

这就是一个简单的 “Hello, World!” 程序。在这个程序中,fn main() 是程序的入口点,println! 是一个宏,用于在控制台打印一行文本。

二,两种编译方式

在Rust中,有两种主要的编译方式:直接使用rustc编译器编译和使用Cargo编译。

1. 使用rustc编译器编译

rustc是Rust的编译器,可以直接编译Rust源代码文件。例如,有一个名为main.rs的Rust源代码文件,可以使用以下命令编译:

rustc main.rs

这将会生成一个名为main(在Windows上是main.exe)的可执行文件。然后,可以直接运行这个可执行文件:

./main

这将会运行程序,并输出结果。

使用rustc编译器编译是一种简单直接的方式,适合于小型的、单文件的Rust程序。但是,对于大型的、多文件的Rust项目,使用rustc编译器编译会变得非常复杂和困难。

2. 使用Cargo编译

Cargo是Rust的构建系统和包管理器,可以自动处理项目的构建过程,包括编译代码、下载依赖包等。

接下来,使用Cargo编译并运行项目,在Cargo.toml所在目录执行下述命令:

cargo run

这将会编译并运行项目,输出结果。

使用Cargo编译是一种更高级的方式,适合于大型的、多文件的Rust项目。Cargo可以自动处理项目的构建过程,使得编译变得更加简单和方便。

总结

使用rustc编译器编译和使用Cargo编译都是编译Rust程序的有效方式,选择哪种方式取决于项目的大小和复杂性。

下一章我们将进入Rust的语法学习,感谢大家关注。

相关文章:

【ChatGPT辅助学Rust | 基础系列 | Hello, Rust】编写并运行第一个Rust程序

文章目录 前言一,创建项目二,两种编译方式1. 使用rustc编译器编译2. 使用Cargo编译 总结 前言 在开始学习任何一门新的编程语言时,都会从编写一个简单的 “Hello, World!” 程序开始。在这一章节中,将会介绍如何在Rust中编写并运…...

自监督去噪:Noise2Noise原理及实现(Pytorch)

文章地址:https://arxiv.org/abs/1803.04189 ICML github 代码: https://github.com/NVlabs/noise2noise 本文整理和参考代码: https://github.com/shivamsaboo17/Deep-Restore-PyTorch 文章目录 1. 理论背景2. 实验结果3. 代码实现(1) 网络结构(2) 数据加载(3) 网络…...

BES2700 SDK绝对时间获取方法

1 代码 2 实验 log 需要换算下...

Closure Table-树形多级关系数据库设计(MySql)

一般树形多级关系数据库设计,比较普遍的就是四种方法:(具体见 SQL Anti-patterns这本书) Adjacency List:每一条记录存parent_id Path Enumerations:每一条记录存整个tree path经过的node枚举&#xff08…...

【SQL应知应会】表分区(一)• MySQL版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习,有基础也有进阶,有MySQL也有Oracle 分区表 • MySQL版 一、分区表1.非分区表2.分区表2…...

java语法基础-- 变量、标识符、关键字

学习目标 教学目标重点难点1.掌握变量的相关概念。2.掌握Java中数据类型的划分。3.掌握8种基本数据类型的使用。4.掌握数据类型的转换方式。5.掌握各个运算符,表达式的作用。6.可以编写简单的Java应用程序。1.对变量的理解。2.基本数据类型的相关信息的记忆。3.数据…...

[STL]stack和queue模拟实现

[STL]stack和queue模拟实现 文章目录 [STL]stack和queue模拟实现stack模拟实现queue模拟实现 stack模拟实现 stack是一种容器适配器,标准容器vector、deque、list都可以作为实现stack的底层数据结构,因为它们都具备以下功能: empty&#xf…...

汽车销售企业消费税,增值税高怎么合理解决?

《税筹顾问》专注于园区招商、企业税务筹划,合理合规助力企业节税! 汽车行业一直处于炙手可热的阶段,这是因为个人或者家庭用车的需求在不断攀升,同时随着新能源的技术进一步应用到汽车领域,一度实现了汽车销量的翻倍。…...

flask数据库操作

本文将详细介绍在Flask Web应用中如何设计数据库模型,并使用Flask-SQLAlchemy等扩展进行数据库操作的最佳实践。内容涵盖数据模型设计,ORM使用,关系映射,查询方法,事务处理等方面。通过本文,您可以掌握Flask数据库应用的基本知识。 Flask作为一个流行的Python Web框架,提供了高…...

【C++】 哈希

一、哈希的概念及其性质 1.哈希概念 在顺序结构以及平衡树中,元素关键码与其存储位置之间没有对应的关系,因此在查找一个元素时,必须要经过关键码的多次比较。比如顺序表需要从第一个元素依次向后进行查找,顺序查找时间复杂度为…...

TCP三次握手和四次挥手以及11种状态(二)

11种状态 1、一开始,建立连接之前服务器和客户端的状态都为CLOSED; 2、服务器创建socket后开始监听,变为LISTEN状态; 3、客户端请求建立连接,向服务器发送SYN报文,客户端的状态变味SYN_SENT; 4、…...

【华为OD】运维日志排序

题目描述: 运维工程师采集到某产品线网运行一天产生的日志n条,现需根据日志时间先后顺序对日志进行排序,日志时间格式为H:M:S.N。 H表示小时(0~23) M表示分钟(0~59) S表示秒(0~59) N表示毫秒(0~999) 时间可能并没有补全,也就是说&…...

Mag-Fluo-4 AM,镁离子荧光探针,是一种有用的细胞内镁离子指示剂

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----产品描述: 镁离子荧光探针Mag-Fluo-4 AM,具细胞膜渗透性,对镁离子(Mg2) 和钙离子(Ca2)的 Kd 值分别是 4.7mM 和 22mM&#xff0c…...

与 ChatGPT 进行有效交互的几种策略

在这篇文章中,您将了解即时工程。尤其, 如何在提示中提供对响应影响最大的信息什么是角色、正面和负面提示、零样本提示等如何迭代使用提示来利用 ChatGPT 的对话性质 废话不多说直接开始吧!!! 提示原则 快速工程是有…...

华为云安装MySQL后,本地工具连接MySQL失败

华为云安装MySQL后,本地连接失败 排查问题步骤: 在此之前需要在MySQL创建用户,并赋予权限。 1、能否ping通。 在本地命令行(Windows:winR)通过ping命令,ping服务器地址,看能否ping通。不能则需要检查本地…...

Flink On Yarn模式部署与验证

session运行模式 该模式下分为2步,即使用yarn-session.sh申请资源,然后 flink run提交任务。 1、申请资源yarn-session.sh #在server1执行命令 /usr/local/flink-1.13.5/bin/yarn-session.sh -tm 1024 -n 2 -s 1 -d #申请2个CPU、2g内存 # -tm 表示每个…...

[数据库]对数据库事务进行总结

文章目录 1、什么是事务2、事务的特性(ACID)3、并发事务带来的问题4、四个隔离级别: 1、什么是事务 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红…...

【Lua学习笔记】Lua进阶——Table(2)

文章目录 Table的一万种用法二维数组类和结构体Table操作insert & removesortconcat 接上文【Lua学习笔记】Lua进阶——Table,迭代器 Table的一万种用法 二维数组 a {{ 1, 2, 3 },{ 4, 5, 6 }, } print(#a) -->2 for i1,#a dob a[i]for j1,#b doprint(b[…...

如何进行软件回归测试

什么是软件回归测试,如何进行回归测试,进行回归测试时有哪些常用的方法? 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误的一种测试方法。回归测试是指重复以前的全部或部分的相同功能…...

php://filter绕过死亡exit

文章目录 php://filter绕过死亡exit前言[EIS 2019]EzPOP绕过exit 参考 php://filter绕过死亡exit 前言 最近写了一道反序列化的题,其中有一个需要通过php://filter去绕过死亡exit()的小trick,这里通过一道题目来讲解 [EIS 2019]EzPOP 题目源码&#…...

像素剧本圣殿详细步骤:如何重置时空+保存平行宇宙创作记录

像素剧本圣殿详细步骤:如何重置时空保存平行宇宙创作记录 1. 认识像素剧本圣殿 像素剧本圣殿是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。它将强大的AI推理能力与独特的8-Bit复古美学相结合,为创作者提供了一个沉浸式的剧本开发环境。…...

BusyBox根文件系统制作避坑指南:如何让QEMU模拟的ARM板成功挂载你的第一个Linux系统

BusyBox根文件系统制作避坑指南:如何让QEMU模拟的ARM板成功挂载你的第一个Linux系统 当你在QEMU上启动一个精心编译的ARM Linux内核时,最令人沮丧的莫过于看到内核在挂载根文件系统时崩溃。作为嵌入式Linux开发的关键环节,根文件系统的构建往…...

终极指南:Redoc安全最佳实践,全面保护你的API文档

终极指南:Redoc安全最佳实践,全面保护你的API文档 【免费下载链接】redoc 📘 OpenAPI/Swagger-generated API Reference Documentation 项目地址: https://gitcode.com/gh_mirrors/re/redoc Redoc是一款强大的OpenAPI/Swagger生成API参…...

8 鸿蒙多任务并发场景性能瓶颈排查 | 鸿蒙开发筑基实战

8 鸿蒙多任务并发场景性能瓶颈排查 | 鸿蒙开发筑基实战 作者:杨建宾(华夏之光永存) 摘要 本文面向鸿蒙应用开发工程师,聚焦多任务并发场景下的卡顿、掉帧、响应延迟等核心痛点,提供一套通用工程级排查流程。从任务调度…...

FPGA开发流程全解析:从Verilog代码到硬件实现的7个关键步骤

FPGA开发实战指南:从代码到硬件的全流程精要 在电子设计自动化领域,FPGA开发因其灵活性和高性能优势,正成为越来越多工程师的首选方案。不同于传统ASIC开发的漫长周期和高昂成本,FPGA允许设计者在硬件层面进行快速迭代和验证&…...

SEO_避开常见误区,正确理解SEO的核心价值(127 )

SEO的核心价值:避开常见误区,正确理解 在当今互联网时代,SEO(搜索引擎优化)无疑是提升网站流量、吸引潜在客户的重要手段。许多企业在SEO实践中常常陷入一些误区,无法正确理解SEO的核心价值,导…...

RTX 3090上跑Isaac Lab强化学习:从克隆仓库到训练蚂蚁机器人保姆级避坑指南

RTX 3090上的Isaac Lab强化学习实战:从零训练蚂蚁机器人的完整指南 在机器人强化学习领域,NVIDIA Isaac Lab正迅速成为研究者和开发者的首选工具链。当RTX 3090的24GB显存遇上Ubuntu 22.04的稳定环境,这套组合能为复杂RL任务提供令人惊喜的训…...

元宇宙遗产:那些永远无法测试的AR社交漏洞

测试的疆界与永恒的盲区在软件测试领域,我们习惯于与已知作战。我们制定详尽的测试用例,模拟用户行为,构建自动化脚本,利用AI生成攻击向量,力求覆盖每一个可预见的边界和异常。漏洞扫描、渗透测试、模糊测试、代码审查…...

保姆级教程:手把手教你用VCSA 8.0.3接管Windows AD域,实现统一登录

企业级虚拟化身份管理:VCSA 8.0.3与Windows AD域深度集成实战 在数字化转型浪潮中,企业IT基础设施的集中化管理已成为刚需。当虚拟化平台规模扩大至数百台主机时,如何确保管理员和开发人员既能高效访问资源,又能遵循最小权限原则&…...

边缘设备福音:在树莓派上部署CosyVoice-300M Lite语音合成服务

边缘设备福音:在树莓派上部署CosyVoice-300M Lite语音合成服务 1. 为什么选择CosyVoice-300M Lite 1.1 专为边缘计算优化的语音合成方案 在物联网和边缘计算场景中,我们经常需要在资源受限的设备上运行AI模型。传统语音合成方案要么体积庞大&#xff…...