在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何安裝和使用cargo

科技綠洲 ? 來源:TinyZ ? 作者:TinyZ ? 2023-09-20 11:28 ? 次閱讀

Cargo是Rust語言的包管理器和構(gòu)建工具。它能夠幫助我們管理依賴、構(gòu)建項目、運(yùn)行測試和發(fā)布程序等。在Rust社區(qū)中,Cargo已經(jīng)成為了標(biāo)準(zhǔn)的構(gòu)建工具,它為Rust的開發(fā)者提供了極大的便利。

安裝和使用 cargo

在安裝Rust時,Cargo也已經(jīng)隨之安裝。 如果你還沒有安裝Rust,可以參考系列教程的第一篇 Rust語言從入門到精通系列 - Hello World!, 也可以前往官網(wǎng) 下載安裝包進(jìn)行安裝。 安裝完成后,可以通過以下命令來檢查Cargo是否安裝成功:

cargo --version
# cargo 1.68.0 (115f34552 2023-02-26)

輸出了Cargo的版本號,說明安裝成功。環(huán)境檢查完成,下面開始Cargo的學(xué)習(xí)。

我們先回顧一下上一篇文章中使用過的Cargo命令。 第一個使用Cargo命令是"cargo new", 創(chuàng)建了我們的第一個Rust項目。沒看過第一篇的同學(xué)可以嘗試如下命令創(chuàng)建:

cargo new hello_world

這條命令會在當(dāng)前目錄下創(chuàng)建一個名為hello_world的新項目。其中,hello_world是項目的名稱,可以根據(jù)自己的需要進(jìn)行修改。 創(chuàng)建完成后,打開項目的目錄hello_world。

目錄結(jié)構(gòu)如下圖所示:

/
├── Cargo.lock
├── Cargo.toml
├── crate-information.json
├── src/
│   ├── main.rs
└── target/
└── tools/

Cargo生成的最基本的項目結(jié)構(gòu),包括src目錄(用于存放開發(fā)的源代碼)和Cargo.toml文件(管理項目元數(shù)據(jù)、編譯構(gòu)建、第三方庫依賴等等)。

在src目錄下,我們看到一個名為main.rs的文件,它是Rust程序的入口文件,內(nèi)部實(shí)現(xiàn)一個默認(rèn)的main()方法:

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

在main()方法體中輸入 println!("Hello, world!"); 這就是一個非常簡單的程序,它的功能是再命令提示符窗口打印輸出一句話“Hello, world!”。在VS Code中按 F5 運(yùn)行你的第一個程序吧。

假如你沒有配置VS Code啟動配置,那么再運(yùn)行程序之前,Cargo會先使用build命令來構(gòu)建項目,生成可執(zhí)行文件。 至此,我們又新接觸了一個cargo命令 build:

cargo build

cargo build 命令會在項目的根目錄下生成一個target目錄,其中包含了構(gòu)建后的二進(jìn)制文件。在默認(rèn)情況下,Cargo會生成一個名為hello_world的二進(jìn)制文件。

如果只想編譯項目而不生成二進(jìn)制文件,可以使用以下命令:

cargo check

這條命令會檢查代碼是否可以編譯通過,但不會生成二進(jìn)制文件。

在構(gòu)建完成后,我們可以使用以下命令來運(yùn)行程序:

cargo run

這條命令會自動編譯并運(yùn)行項目。如果一切正常,你應(yīng)該能夠看到和Vs Code按F5啟動一樣的“Hello, world!”的輸出。

常用指令

上一小節(jié),我們使用了Cargo的new,build, run, check四個指令,除了這幾個指令外,Cargo 還提供了更多的指令,下面列舉并注釋其中最常用的一些指令:

  • ? new: 指令可以創(chuàng)建一個新的 Rust 項目。它有兩個參數(shù),第一個參數(shù)是項目名稱,第二個參數(shù)是項目類型,可以是 bin 或 lib。默認(rèn)情況下,new 會創(chuàng)建一個二進(jìn)制bin項目。
  • ? init: 指令可以將當(dāng)前目錄初始化為一個 Rust 項目。它會創(chuàng)建一個默認(rèn)的 src 目錄和 Cargo.toml 文件。
  • ? check: 指令可以檢查代碼是否可以編譯通過,但 不會生成二進(jìn)制文件 。
  • ? build: 指令可以編譯 Rust 項目,并生成二進(jìn)制文件。如果項目已經(jīng)編譯過,build 指令會跳過編譯過程。
  • ? run: 指令可以編譯并運(yùn)行 Rust 項目。如果項目已經(jīng)編譯過,run 指令會跳過編譯過程。
  • ? test: 指令可以運(yùn)行項目中的測試。測試代碼通常放在 src/test.rs 或 src/lib.rs 中。
  • ? bench: 指令可以運(yùn)行項目中的基準(zhǔn)測試。基準(zhǔn)測試用來測試代碼的性能。
  • ? doc: 指令可以生成項目的文檔。文檔通常使用 Rust 內(nèi)置的文檔工具 rustdoc 來生成。
  • ? clean: 指令可以清除項目的構(gòu)建文件和生成的二進(jìn)制文件。
  • ? update: 指令可以更新項目中的依賴。
  • ? publish: 指令可以將項目發(fā)布到 crates.io 上,供其他人使用。

更多指令可以通過 cargo --help 或 cargo --help 查看。

自定義擴(kuò)展指令

依賴管理

在Rust項目中,我們可以使用Cargo來管理依賴??梢酝ㄟ^編輯Cargo.toml文件來添加依賴。 例如,我們想要使用rand庫來生成隨機(jī)數(shù),可以在Cargo.toml文件中添加以下內(nèi)容:

[dependencies]
rand = "0.8.4"

這條語句告訴Cargo,我們需要使用rand庫,并且希望使用版本號為0.8.4的版本。在保存文件后,可以使用以下命令來安裝依賴:

cargo build

這條命令會自動下載并安裝依賴。 在代碼中使用依賴時,我們需要在main.rs文件中添加以下語句:

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let n: u8 = rng.gen();
    println!("Random number: {}", n);
}

這里,我們使用了rand庫中的Rng trait和thread_rng函數(shù)來生成隨機(jī)數(shù)。

版本號控制

上面的示例我們引入了指定0.8.4版本的rand庫依賴,并在命令提示符中打印了隨機(jī)數(shù)。這里我們進(jìn)一步對依賴管理進(jìn)行學(xué)習(xí)。

除了指定依賴的特定版本外,我們還可以使用邏輯運(yùn)算符控制版本范圍, 具體如下:

  • ? =: 等于某個版本。等同于直接填寫版本號
  • ? >: 大于某個版本。
  • ? <=: 小于等于某個版本。
  • ? : 大約等于某個版本,例如1.2.3表示大約等于1.2.3,但是允許最后一位數(shù)字不同,例如1.2.4。
  • ? ^: 兼容某個版本,例如^1.2.3表示兼容1.2.x系列的所有版本,但是不兼容2.0.0及以上版本。

假如我們想指定依賴庫的版本號大于等于0.7.3版本 且 小于0.8.4,示例:

[dependencies]
rand = " >=0.7.3, < 0.8.4"

指定依賴項的特性

有些庫提供了多個特性,可以用來啟用或禁用某些功能。例如,serde庫提供了一個名為derive的特性,用于啟用派生宏。為了指定依賴項的特性,可以使用如下語法:

[dependencies]
庫名稱 = { version = "版本號", features = ["特性名稱"] }

log是一個用于日志記錄的庫。它提供了多個特性,可以用來啟用或禁用某些功能。下面是一些常見的特性及其用途:

  • ? std: 用于啟用log的標(biāo)準(zhǔn)庫支持,可以在標(biāo)準(zhǔn)庫環(huán)境中使用log。
  • ? env_logger: 用于啟用log的環(huán)境變量支持,可以使用環(huán)境變量來控制日志輸出。
  • ? log4rs: 用于啟用log的log4rs支持,可以使用log4rs庫來配置日志輸出。
  • ? simplelog: 用于啟用log的simplelog支持,可以使用simplelog庫來配置日志輸出。

下面是一個示例:

[dependencies]
log = { version = "0.4", features = ["std"] }

除了啟用特性之外,還可以禁用特性,例如:

[dependencies]
log = { version = "0.4", default-features = false }

指定依賴項的路徑

在某些情況下,我們可能需要使用本地文件系統(tǒng)中的庫。為了指定依賴項的路徑,可以使用如下語法:

[dependencies]
rand = { path = "../rand" }

在這個例子中,我們指定了一個名為rand的庫,路徑為../rand。這告訴Cargo編譯器,我們的項目需要使用本地文件系統(tǒng)中的rand庫。當(dāng)我們運(yùn)行cargo build命令時,Cargo會自動編譯指定路徑下的rand庫,并將它添加到我們的項目中。

除了使用本地文件系統(tǒng)中的庫之外,我們還可以使用git倉庫中的庫。為了指定依賴項的git倉庫,可以使用如下語法:

[dependencies]
rand = { git = "https://github.com/rust-lang-nursery/rand.git" }

項目元數(shù)據(jù)

本文的前面章節(jié)介紹了Cargo的常用質(zhì)量,依賴管理特性。本小節(jié)主要講解Cargo.toml文件中定義的程序元數(shù)據(jù),例如:程序的名稱、版本號、作者和描述等信息

[package]
##    項目名(程序名稱)
name = "hello_world"
##    版本號
version = "0.1.0"
##    作者, 多個按逗號分隔
authors = ["Your Name < your_email@example.com >"]
##    項目描述
description = "A hello world program in Rust."
##    Rust語言的版本,目前支持2015、2018和2021 三個版本。
edition = "2021"

除了基礎(chǔ)的元數(shù)據(jù)外,我們還可以在[package.metadata]下自定義專屬的元數(shù)據(jù):

[package.metadata]
url = "https://github.com/username/hello-world"
doc = "https://docs.rs/hello-world"
repository = "https://github.com/username/hello-world.git"

總結(jié)

通過本文的介紹,我們了解了Rust語言的包管理器和構(gòu)建工具Cargo。學(xué)習(xí)了如何創(chuàng)建一個新的Rust項目、編寫Rust程序、構(gòu)建和運(yùn)行程序、添加依賴等操作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 安裝
    +關(guān)注

    關(guān)注

    2

    文章

    98

    瀏覽量

    22368
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3798

    瀏覽量

    81456
  • 管理器
    +關(guān)注

    關(guān)注

    0

    文章

    248

    瀏覽量

    18626
  • rust語言
    +關(guān)注

    關(guān)注

    0

    文章

    57

    瀏覽量

    3031
收藏 人收藏

    評論

    相關(guān)推薦

    如何在Rust中連接和使用MySQL數(shù)據(jù)庫

    如何在Rust中連接和使用MySQL數(shù)據(jù)庫。 安裝 mysql 模塊 這里我們假設(shè)你已經(jīng)安裝了Rust編程語言工具鏈,在本教程中,我們將使用 mysql crate來連接和使用MySQL數(shù)據(jù)庫。要安裝
    的頭像 發(fā)表于 09-30 17:05 ?1782次閱讀

    【MYD-Y6ULX試用體驗(yàn)】建立開發(fā)環(huán)境

    ,2018年,RUST官方已正式把嵌入式系統(tǒng)列為主要工作目標(biāo),期待RUST的嵌入式開發(fā)體驗(yàn)會有顯著提升。安裝在終端運(yùn)行$ curl https:// sh.rustup.rs -sSf | sh這將
    發(fā)表于 03-27 16:46

    只會用Python?教你在樹莓派上開始使用Rust

    。出現(xiàn)提示時,選擇默認(rèn)安裝。安裝程序?qū)⒃谕瓿蓵r通知您,盡管安裝可能會花費(fèi)一些時間,具體取決于您的連接。/p》 安裝安裝成功,但是您還不能開
    發(fā)表于 05-20 08:00

    基于matlab約束優(yōu)化懲罰函數(shù)法

    一、簡介clcclear allglobal box; global cargo; global lambda; global num_cargo;global num_box;global
    發(fā)表于 08-17 06:01

    如何在STM32 (Cortex M3)和GD32(RISC-V)上用Rust開發(fā)

    已經(jīng)集成了 LLVM,所以本身就可以直接編譯,不需要而外的編譯器。當(dāng)然,有些 rust 組件安裝還是需要自己電腦上有編譯器的,比如后面會提到的 cargo-binutils。不過在 Windows
    發(fā)表于 06-21 10:38

    【沁恒微CH32V307評估板試用體驗(yàn)】探索Rust編程語言的嵌入式開發(fā)——基于CH32V307【1】

    安裝Rustup和Cargo在windows系統(tǒng)中,從官網(wǎng)下載rustup-init.exe,由于默認(rèn)的msvc需要Visual Studio,所以本機(jī)采用mingw的版本,只需要安裝MinGW的gcc
    發(fā)表于 07-18 00:37

    如何在構(gòu)建yocto時將rust和cargo安裝為圖像?

    我正在使用 5.15.72。 當(dāng)我制作 imx 完整圖像時,我嘗試包括 rust 和 cargo。 你知不知道怎么?
    發(fā)表于 05-09 07:10

    pads2007的安裝方法 怎么安裝 無法安裝

    pads2007的安裝方法 怎么安裝  無法安裝:圖解說明,非常詳細(xì)
    發(fā)表于 12-03 13:01 ?0次下載
    pads2007的<b class='flag-5'>安裝</b>方法 怎么<b class='flag-5'>安裝</b> 無法<b class='flag-5'>安裝</b>

    基于E-CARGO的多任務(wù)分配管理

    多任務(wù)分配是管理和協(xié)同工作中的重要問題。采用E-CARGO建模來解決常規(guī)多任務(wù)分配問題( GMTAP)與組角色多任務(wù)分配問題(GRMTAP)。提出了兩種算法:(l)通過把GMTAP質(zhì)量評估矩陣轉(zhuǎn)置
    發(fā)表于 11-23 14:58 ?11次下載
    基于E-<b class='flag-5'>CARGO</b>的多任務(wù)分配管理

    坐出租車也可購買商品?優(yōu)步與Cargo正式合作后的計劃

    據(jù)VentureBeat北京時間7月20日報道,Uber公布了允許司機(jī)在服務(wù)期間向乘客銷售商品、賺外快的計劃。這一計劃的公布正值Uber與車內(nèi)商務(wù)創(chuàng)業(yè)公司Cargo達(dá)成正式合作之際。
    的頭像 發(fā)表于 08-05 09:25 ?2318次閱讀

    cargo careful:為你的代碼提供更多安全保證

    cargo careful 就是為了彌補(bǔ)這個差距,它在第一次調(diào)用時,會從源代碼構(gòu)建一個帶有調(diào)試斷言的標(biāo)準(zhǔn)庫,然后使用該標(biāo)準(zhǔn)庫運(yùn)行您的程序或測試套件。
    的頭像 發(fā)表于 10-27 09:52 ?499次閱讀
    <b class='flag-5'>cargo</b> careful:為你的代碼提供更多安全保證

    cargo-offline命令解讀

    cargo-offline 命令 cargo-offline 是標(biāo)準(zhǔn) cargo 命令的包裝器。其被用來,根據(jù)·距離 cargo-offline 命令執(zhí)行目錄最近的
    的頭像 發(fā)表于 12-01 15:41 ?1185次閱讀

    基于Rust 編程語言的小游戲程序?qū)嵗?/a>

    在編寫程序之前你的電腦必須先安裝好 Rust 的基礎(chǔ)開發(fā)環(huán)境,并且有 Cargo 支持,如果你是其他編程語言轉(zhuǎn)過來的例如 C、 Java 、Python 、JavaScript 、Swift 等
    發(fā)表于 12-15 10:53 ?1910次閱讀

    Cargo如何訪問世界上最強(qiáng)大的3D庫

    Cargo簡介 用于電影和視頻游戲的高級3D資產(chǎn)在我們的新資產(chǎn)瀏覽器— Cargo中訪問世界上最強(qiáng)大的3D庫 每個套件。每個模型。每種材料。 一個全新的資產(chǎn)瀏覽器加載了你所有的工具包。 ? 完整
    的頭像 發(fā)表于 06-19 10:09 ?854次閱讀

    CARGO:改變您使用3D資產(chǎn)的方式

    今天我們發(fā)布了Cargo,這款軟件將徹底改變您使用3D資產(chǎn)的方式。Cargo適用于Windows,開箱即用,可與Blender、Unreal、3dsMax 和Maya等3D軟件一起使用。讓我們解開
    的頭像 發(fā)表于 06-26 10:08 ?1061次閱讀
    主站蜘蛛池模板: 日本一区免费看 | 成年美女| 天天干狠狠 | 四虎永久精品视频在线 | 精品伊人久久香线蕉 | 男人和女人做爽爽视频在线观看 | 免费抓胸吻胸激烈视频网站 | 亚洲在成人网在线看 | 尤物啪啪| 激情文学综合 | 午夜免费福利在线观看 | 亚洲无色| 国产精品三级 | 久久99精品久久久久久臀蜜桃 | 高清成年美女xx免费网站黄 | 91色视| caoporn成人免费公开 | 亚洲精品www | 四虎永久在线视频 | 另类激情亚洲 | 欧美极品第一页 | 一区二区免费视频 | 国产激烈无遮挡免费床戏视频 | 国产亚洲一区二区在线观看 | 久久波多野结衣 | 国产精品久久久久久吹潮 | 国产成人精品曰本亚洲 | 国产亚洲网站 | 特级做a爰片毛片免费看一区 | 色天使色护士 在线视频观看 | 国产98在线传媒在线视频 | 中文字幕天天躁夜夜狠狠综合 | 国内啪啪| 色多多·com 色多多18免费观看 色多多a | 淫操 | 丁香花在线视频 | 亚洲成a人片77777kkk | www.一区二区 | 精品一区二区三区三区 | 黄色短视频免费观看 | 免费特黄视频 |