rust

文章目录

  • rust
    • Cargo
    • [Creating a rust project](#Creating a rust project)
  • [How to Debug Rust Programs using VSCode](#How to Debug Rust Programs using VSCode)
    • [basic debugging](#basic debugging)
    • [How to pass arguments in Rust debugging with VS Code.](#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

bash 复制代码
cargo new hello_world

Project Structure

bash 复制代码
$ cd hello_world
$ tree .
.
├── Cargo.toml
└── src
    └── main.rs

1 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.

bash 复制代码
$ cargo build
   Compiling hello_world v0.1.0 (file:///path/to/package/hello_world)

Then run the compiled binary executable file:

bash 复制代码
$ ./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:

bash 复制代码
$ cargo run
     Fresh 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

相关推荐
用户5944041035616 分钟前
Go 语言高性能 Web 服务开发:基于 Gin + GORM + Redis 构建 RESTful API
后端
Python私教19 分钟前
App 第一版该砍什么?用三问法守住 MVP 的工程底线
后端·mvp
ServBay26 分钟前
AI 工程师必备的 9 个 Python 库,从数据验证到模型优化
后端·python·ai编程
Python私教28 分钟前
软件开发报价差 3 倍,真正的工程冲突不在价格
后端·架构
kisshyshy38 分钟前
掘金同款社区数据库设计:9张表带你吃透建表、索引与约束
后端·sql·markdown
元界metalite43 分钟前
SpringBoot项目Maven-BOM统一版本就不会冲突吗
后端
蓝宝石Kaze1 小时前
Gin 框架快速上手
后端
TechLee1 小时前
跨语言加解密总对不上?这个纯 Go 神库让 AES/RSA 与 PHP、Java 100% 互通
java·后端·算法
用户594404103561 小时前
从零手写轻量级 RPC 框架:基于 Netty + Zookeeper 的核心实现
后端
九九落1 小时前
JavaScript 实现北京时间精确到毫秒显示:UTC+8、Asia/Shanghai 与在线时间校准详解
开发语言·javascript·ecmascript