rust

文章目录

  • rust
    • Cargo
    • Creating a rust project
  • How to Debug Rust Programs using VSCode
    • basic debugging
    • How to pass arguments in Rust debugging with VS Code.
  • References

rust

Cargo

Cargo is a package management tool used for downloading, compiling, updating, and managing dependencies in Rust. It is installed automatically when Rust is installed and does not require any manual intervention from the user.

Creating a rust project

cargo new hello_world

Project Structure

$ cd hello_world
$ tree .
.
├── Cargo.toml
└── src└── main.rs1 directory, 2 files

Cargo.toml is the configuration file used by Cargo.

[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"[dependencies]

The above is the complete content of the Cargo.toml file, which is known as the manifest and contains all the metadata needed for Cargo to compile the program.

src/main.rs内容如下

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

It can be seen that Cargo has also automatically generated a “Hello World” program or binary package for us, and has compiled and built the program.

$ cargo buildCompiling hello_world v0.1.0 (file:///path/to/package/hello_world)

Then run the compiled binary executable file:

$ ./target/debug/hello_world
Hello, world!

Notice the “debug” in the path? It indicates that we just compiled in Debug mode, which is mainly used for testing purposes. If we want to perform production compilation, we need to use the Release mode with cargo build --release, and then run it with ./target/release/hello_world.

In addition to the compile + run method mentioned above, in daily development, we can also use a simple command to run it directly:

$ cargo runFresh hello_world v0.1.0 (file:///path/to/package/hello_world)Running `target/hello_world`
Hello, world!

cargo run will automatically compile and run the program for us. Of course, this command also supports the Release mode: cargo run --release.

How to Debug Rust Programs using VSCode

basic debugging

After consulting the official documentation on debugging Rust with VS Code at https://code.visualstudio.com/docs/languages/rust#_debugging, ↗ it is found that the recommended debugging extensions are:
Microsoft C++ (ms-vscode.cpptools) - on Windows
CodeLLDB (vadimcn.vscode-lldb) - on macOS/Linux

“After installing the debugging extension, you can start debugging.”
在这里插入图片描述

How to pass arguments in Rust debugging with VS Code.

When using CodeLLDB for debugging, consult the CodeLLDB debugging documentation at https://github.com/vadimcn/codelldb/blob/v1.9.2/MANUAL.md#starting-a-new-debug-session ↗ to learn that a launch.json configuration file needs to be created in the .vscode directory.
在这里插入图片描述
The configuration file should have the following contents::

{"version": "0.2.0","configurations": [{"name": "Launch","type": "lldb","request": "launch","program": "${workspaceFolder}/target/debug/yrh_test","args": ["llama", "${workspaceFolder}/model/llama/open_llama_3b-f16.bin"],}]
}

References

https://zhuanlan.zhihu.com/p/470251959

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/27167.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Waves 14 Complete对Mac和Windows系统的最低要求

Waves 14 Complete是一款功能齐全的音频编辑软件,适用于音乐制作、音频工程和声音设计等领域。它提供了一系列强大的工具和效果,帮助用户在音频处理过程中实现专业水平的效果和混音。 Waves 14 Complete包含了多个实用的插件,如均衡器、压缩…

设计模式-建造者模式

盖房项目需求: 需要建房子:这一过程为打桩、砌墙、封顶。房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的。 请编写程序,完成需求。 一、传统…

复习单例模式

单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个…

了解 JVM - 认识垃圾回收机制与类加载过程

前言 本篇通过介绍JVM是什么,认识JVM的内存区域的划分,了解类加载过程,JVM中垃圾回收机制,从中了解到垃圾回收机制中如何找到存活对象的方式,引用计数与可达性分析的方式,再释放垃圾对象时使用的方式&…

最小二乘拟合平面——拉格朗日乘子法

目录 一、算法原理二、代码实现1、python2、matlab 三、算法效果 一、算法原理 设拟合出的平面方程为: a x b y c z d 0 (1) axbyczd0\tag{1} axbyczd0(1) 约束条件为: a 2 b 2 c 2 1 (2) a^2b^2c^21\tag{2} a2b2c21(2)   可以得到平面参数 a…

【Django学习】(十四)自定义action_router

之前我们的视图类可以继承GenericViewSet或者ModelViewSet,我们不用再自定义通用的action方法,但是有时候我们需要自定义action,我们该如何设计呢? 自定义action 1、手写视图逻辑 1.1、先在视图集里自定义action方法&#xff0…

4、深入理解ribbon

一、负载均衡的两种方式 服务器端负载均衡 传统的方式前端发送请求会到我们的的nginx上去,nginx作为反向代理,然后路由给后端的服务器,由于负载均衡算法是nginx提供的,而nginx是部署到服务器端的,所以这种方式又被称为…

ETLBox for .Net Crack

ETLBox for .Net Crack 为设计的轻量级ETL(提取转换负载)工具箱和数据集成库。NET。 ETL是现代商业智能应用程序的基础,是将分析与之前的所有其他组件分离的唯一方法。ETL是提取-加载、转换和转换的缩写,描述了一个由三个步骤组成的过程: 提取…

【Unity面试篇】Unity 面试题总结甄选 |热更新与Lua语言 | ❤️持续更新❤️

前言 关于Unity面试题相关的所有知识点:🐱‍🏍2023年Unity面试题大全,共十万字面试题总结【收藏一篇足够面试,持续更新】为了方便大家可以重点复习某个模块,所以将各方面的知识点进行了拆分并更新整理了新…

javascript中过滤二维对象数组重复的字段并只保留唯一值(array.filter与Array.from)

javascript中过滤二维对象数组重复的字段并只保留唯一值 1.Array.filter过滤array.filter()方法 2.Array.from过滤Array.from方法 1.Array.filter过滤 在JavaScript中,你可以使用Array.filter()和Set数据结构来过滤二维对象数组中重复的字段,只保留唯一…

Java日期类

日期类 第一代日期类: 1、Date:精确到毫秒,代表特定的瞬间 2、SimpleDateFormat: **格式化和解析日期的具体类,**它允许进行:格式化(日期 → 文本) 解析(文本 → 日期) 和 规范化。 3、常用的使用方法…

SpringBoot源码分析(6)--SpringBootExceptionReporter/异常报告器

文章目录 一、前言二、异常报告器介绍2.1、作用2.2、接口定义2.3、FailureAnalyzer错误分析器2.4、FailureAnalysisReporter错误报告器 三 、SpringBootExceptionReporter源码分析四、shutdownHook介绍4.1、背景4.2、什么是Shutdown Hook4.3、什么时候会调用Shutdown Hook4.4、…