Rust源码编译

这篇具有很好参考价值的文章主要介绍了Rust源码编译。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Rust源码编译

rustc编译hello.rs

  • Rust程序源代码文件后缀名为.rs
  • 程序文件命名规范为小写字母加下划线,比如hello_world.rs
// hello.rs
fn main() {
    println!("hello world");
}
// fn 表示函数
// main 表示函数名,()内是参数
// {}内是函数体代码
// 代码以分号结束
// 程序代码缩进是4个空格
  • rustc hello.rs 执行后在当前目录生成hello可执行程序

cargo

cargo是Rust的构建系统和包管理工具,能够构建项目代码、下载依赖库、构建库,在安装Rust时会自动安装cargo , 判断cargo 是否正确安装的方法就是在命令行中输入下述命令:

➜  hello_rust git:(master)cargo -V
cargo 1.71.1 (7f1d04c00 2023-07-29)
➜  hello_rust git:(master)cargo --version
cargo 1.71.1 (7f1d04c00 2023-07-29)

使用cargo创建项目

# cargo new 项目名称
cargo new hello_cargo
# 项目名称不能以数字开始
➜  hello_rust git:(master)cargo new 01-basic
error: the name `01-basic` cannot be used as a package name, the name cannot start with a digit
If you need a package name to not match the directory name, consider using --name flag.
If you need a binary with the name "01-basic", use a valid package name, and set the binary name to be different from the package. This can be done by setting the binary filename to `src/bin/01-basic.rs` or change the name in Cargo.toml with:

    [[bin]]
    name = "01-basic"
    path = "src/main.rs"
#  cargo new basic-01 创建项目成功
➜  02-cargo_build cargo new basic-01
     Created binary (application) `basic-01` package

cargo创建项目后,默认的文件目录结构:

basic-01 #[项目顶级目录]
|-- Cargo.toml
`-- src
    `-- main.rs

cargo build 构建项目

cargo build 命令自动进行编译项目,可执行程序名称和项目名称一致,basic-01

➜  basic-01 git:(master)cargo build
   Compiling basic-01 v0.1.0 (/root/rust/02-cargo_build/basic-01)
    Finished dev [unoptimized + debuginfo] target(s) in 0.29s
➜  basic-01 git:(master)ls
Cargo.lock  Cargo.toml  src  target
➜  basic-01 git:(master) ✗ tree target
target
|-- CACHEDIR.TAG
`-- debug
    |-- basic-01
    |-- basic-01.d
    |-- build
    |-- deps
    |   |-- basic_01-e75f9a220d3ad071
    |   `-- basic_01-e75f9a220d3ad071.d
    |-- examples
    `-- incremental
        `-- basic_01-2kh2yg4h6jcag
            |-- s-go2vdsztz6-al0tod-13wjiwhvtbk4c98mo163x460g
            |   |-- 1i85aafl0k1zfwu0.o
            |   |-- 1j4di08lgnzunw6s.o
            |   |-- 1kgk1cvp2qpwyh2b.o
            |   |-- 1nzi9licjx2a4suv.o
            |   |-- 3fohwnhiheayk2p7.o
            |   |-- 4tz67ju1du877p49.o
            |   |-- dep-graph.bin
            |   |-- query-cache.bin
            |   `-- work-products.bin
            `-- s-go2vdsztz6-al0tod.lock

cargo run 构建和运行项目

cargo run 命令是对代码进行编译和执行,将编译和执行这两步合成一步,如果项目之前编译成功过并且源代码没有变化,那么再次运行cargo run 命令时就会直接运行二进制文件,而不会重复进行编译。

cargo check

该命令可以用来检查代码,确保能够通过编译,但是不产生任何可执行文件,该命令比cargo build 命令快的多,在编写代码的时候可以连续反复的使用cargo check 检查代码提高开发效率。

构建Release版本

如果程序开发完成准备正式发布给用户时,就需要使用cargo build --release,该命令会进行优化,优化后代码运行的更快,但是编译的时间更长。
使用该命令构建的可执行文件会在targe/release目录下,默认构建为debug。文章来源地址https://www.toymoban.com/news/detail-678950.html

到了这里,关于Rust源码编译的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Rust rust-crypto 编译报错

    问题描述: Cargo.toml中引入【rust-crypto = “0.2”】,执行【cargo build】编译项目报错,在rust-crypto时遇到cc是否安装的错误,控制台还有github的解决方案,是在toml中加入 并未解决问题! 问题解决: 猜测Linux下gcc和cc,好像是很类似的东西。 因为是Windows下安装的mingw,看了mingw的

    2024年02月12日
    浏览(9)
  • 【Rust日报】用Rust从头实现一个C编译器

    一个声明式解析库 Untwine 发布0.4 Untwine是一个声明性解析库,它允许一种类似于使用自定义宏语法进行直接模式匹配的解析风格。这允许创建具有良好性能特征和高质量错误消息的极其紧凑的解析器。这些解析器实现起来很简单,有几个精心挑选的例子: 一个几乎完整的JSO

    2024年04月22日
    浏览(11)
  • 提速Rust编译器!

    提速Rust编译器!

    Nethercote是一位研究Rust编译器的软件工程师。最近,他正在探索如何提升Rust编译器的性能,在他的博客文章中介绍了Rust编译器是如何将代码分割成代码生成单元(CGU)的以及rustc的性能加速。 他解释了不同数量和大小的CGU之间的权衡以及Rustc是如何使用LLVM并行化代码生成和优

    2024年02月13日
    浏览(11)
  • 后端开发有哪几种语言? - 易智编译EaseEditing

    后端开发有哪几种语言? - 易智编译EaseEditing

    后端开发是构建应用程序的一部分,负责处理服务器端的逻辑、数据库交互和数据处理。有许多编程语言可用于后端开发,以下是一些常见的后端开发语言: Java: Java是一种广泛使用的面向对象编程语言,具有强大的跨平台能力。在后端开发中,Java通常与Java EE(Java Platfor

    2024年02月11日
    浏览(12)
  • Rust交叉编译简述 —— Arm

    使用系统:WSL2 —— Kali(Microsoft Store) 命令列表 写入: 使用qemu进行测试:

    2024年02月12日
    浏览(11)
  • RUST Rover 条件编译 异常处理

    RUST Rover 条件编译 异常处理

    会报异常 error: failed to parse manifest at C:UserstopmaRustroverProjectsuntitled2Cargo.toml 网上说明 这样处理 https://course.rs/cargo/reference/features/intro.html RUST 圣经里描述

    2024年04月09日
    浏览(9)
  • 【rust语言】rust多态实现方式

    学习rust当中遇到了这个问题,记录一下,不对地方望指正 多态是面向对象程序设计中的一个重要概念,指同一个行为或操作在不同实例上具有不同的行为或结果。简单来说,多态就是指同一种类型的对象,在不同的上下文中有不同的行为。多态性使得程序可以更加灵活、可

    2024年02月11日
    浏览(13)
  • rust包跨平台编译,macbook ,linux

    在 MacBook 上编译 Rust 项目并生成 Linux 包需要一些步骤。以下是一般的步骤概述: 1. **安装所需工具:**    首先,确保您的 MacBook 上已经安装了所需的工具。您需要 Rust 编程语言的工具链以及一些用于交叉编译到 Linux 的工具。    - 安装 Rust 工具链:您可以在终端中运行以下

    2024年02月12日
    浏览(17)
  • 【rust/egui】(一)从编译运行template开始

    【rust/egui】(一)从编译运行template开始

    rust新手,egui没啥找到啥教程,这里自己记录下学习过程 环境:windows11 22H2 rust版本:rustc 1.71.1 egui版本:0.22.0 eframe版本:0.22.0 rust windows安装参考:这里 本文默认读者已安装相关环境(git、vscode等) egui github demo online 关于 immediate mode wikipedia microsoft learn 先 clone 下这个项目(也可

    2024年02月13日
    浏览(13)
  • 【RUST】mac m1编译rust项目失败: could not compile `` due to previous error

    2.1 查看clang: 结果如下: 2.2 查看llvm-ar: 结果如下: 2.3 如果没有安装llvm-ar,安装命令如下: 2.4 查看是否安装成功命令: 结果如下: 2.5 重新执行cargo 命令: 执行cargo clean: 执行一次带AR参数的cargo命令(本人执行一次就好了): 如果没有没有报错, 后续就可以使用正常的

    2024年02月07日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包