国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Rust之Cargo的使用

這篇具有很好參考價值的文章主要介紹了Rust之Cargo的使用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、cargo簡介

Cargo 是 Rust 的構建系統(tǒng)和包管理器。?多數 Rustacean 們使? Cargo 來管理他們的 Rust 項?,因為它可以為你處理很多任務,?如構建代碼、下載依賴庫并編譯這些庫。(我們把代碼所需要的庫叫做 依賴(dependencies))。

查看cargo版本

cargo --version

我這里可以看到具體的版本好和日期

cargo 1.63.0 (fd9c4297c 2022-07-01)

2、使用cargo創(chuàng)建項目

cargo new hello_cargo
cd hello_cargo

第一行命令,創(chuàng)建了一個名為hello_cargo的目錄和項目。

進入目錄可以看到以下目錄:

|-src
| |-main.rs
|-.gitignore
|-Cargo.toml

2.1、關于Cargo.toml

[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
  • 第一行,[package], 是一個片段(section)標題,表明下面的語句用來配置一個包。隨著我們在這個文件增加更多的信息,還將增加其他片段(section)
  • 接踵而至的3行設置了Cargo編譯程序所需要的配置:name(項目名稱)、version(項目的版本)、edition(使用的Rust版本)
  • 最后一行,[dependcies], 是羅列項目依賴的片段的開始,在Rust中,代碼包被稱為crates。當然在這個項目我們并不需要其他的crate,不過后面我們會用到這個片段。

2.2 、關于src/main.rs

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

? Cargo為我們自動生成一個“Hello,world!” 程序,正如我們之前編寫的示例helloWorld一樣,不同的是它將main.rs文件放到了src目錄下面。

? Cargo 期望源文件存放在src目錄中。項目根目錄只存放 README、license信息、配置文件和其他跟代碼無關的文件。使用Cargo幫助你保持項目干凈整潔,一切井井有條。

? 當然如果沒有使用Cargo創(chuàng)建的項目,我們也可以轉化為一個Cargo項目,比如我之前的HelloWorld項目。我們可以新建目錄src、新建源文件main.rs在src目錄下、以及創(chuàng)建一個合適的Cargo.toml 文件。

3、構建Cargo項目

我們現在已經使用Cargo創(chuàng)建好了hello_cargo項目,現在我們進入項目目錄

cd hello_cargo

然后我們可以使用Cargo中的build命令開始構建項目

cargo build

執(zhí)行命令后,會打印出如下結果:

Compiling hello_cargo v0.1.0 (D:\RustLang\RustWorkSpace\hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 1.09s

到這里我們首次運行cargo build成功,你會發(fā)現此時項目目錄中多出了一個target目錄和Cargo.lock文件。

這和前端打包類似,如執(zhí)行npm run build 命令后npm會默認生成一個dist目錄,里面就是源碼代碼經過編譯和壓縮后可以放在服務器運行的網頁頁面。其中生成的Cargo.lock文件也和package-lock.json類似,不用說Cargo.toml和package.json 對應。

最后我們可以運行構建成功后生成的可執(zhí)行文件

.\target\debug\hello_cargo.exe

如果一切順利,終端上應該打印出Hello,world! 。

由于默認的構建?法是調試構建(debug build),Cargo 會將可執(zhí)??件放在名為 debug 的?錄中。

4、構建并運行Cargo項目

? 在認識了cargo build命令,我們知道它是用來構建Cargo項目的,但是運行項目需要我們自己去target目錄里面去找到可執(zhí)行文件,并執(zhí)行它。

? 接下來我們來認識一個新的命令cargo run 。它可以構建并運行構建后的可執(zhí)行文件。

cargo run 

打印結果:

 Finished dev [unoptimized + debuginfo] target(s) in 0.01s
     Running `target\debug\hello_cargo.exe`
Hello, world!

? 相信到了這里,我們心中一定明白這個命令,今后會是我們的長期合作伙伴,魂牽夢縈那種。

? 當然有必要說明一下,因為之前我們已經使用cargo build 命令構建了hello_cargo項目 , 所以此時執(zhí)行的 cargo run 命令并沒有重新編譯,而是直接運行了可執(zhí)行文件,打印出了Hello,world! 。

? 接下來我們看看,改變了源文件在執(zhí)行該命令會是什么結果:

 Compiling hello_cargo v0.1.0 (D:\RustLang\RustWorkSpace\hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.63s
     Running `target\debug\hello_cargo.exe`
Hello, Rust world!

? 這里我們看到結果里面有Compiling、FinishedRunning 字樣,所以我們知道這次它重新編譯了該項目,并執(zhí)行了可執(zhí)行文件,打印出了新的結果:Hello, Rust world! 。

5、檢查代碼是否可編譯

? 接下來我們認識應該新的命令cargo check , 該命令可以快速檢查代碼確??梢跃幾g,但并不產生可執(zhí)行文件:

Checking hello_cargo v0.1.0 D:\RustLang\RustWorkSpace\hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.07s

如果一切順利控制臺會出現以上結果。

? 到了這里可能有人會問,為什么不直接執(zhí)行 cargo buildcargo run 命令呢?這樣還可以直接生成可執(zhí)行文件,多方便。

對于一個合格的新時代農民,我們應該持續(xù)定期去檢查我們的“莊稼”,讓它們可以健康成長,這樣我們才可以迎來大豐收。不然我們可能會餓肚子!

? 所以我們要習慣使用cargo check 定期檢查我們的代碼是否可編譯,避免不必要的后顧之憂。

6、發(fā)布(release)構建

? 當項?最終準備好發(fā)布時,可以使? cargo build --release 來優(yōu)化編譯項?。這會在target/release ?不是 target/debug 下?成可執(zhí)??件。這些優(yōu)化可以讓 Rust 代碼運?的更快,不過啟?這些優(yōu)化也需要消耗更?的編譯時間。這也就是為什么會有兩種不同的配置:?種是為了開發(fā),你需要經??焖僦匦聵嫿ǎ涣?種是為?戶構建最終程序,它們不會經常重新構建,并且希望程序運?得越快越好。如果你在測試代碼的運?時間,請確保運? cargo build --release 并使? target/release 下的可執(zhí)??件進?測試。

? 對于運行發(fā)行版本我們可以使用 cargo run --release 命令

 Finished release [optimized] target(s) in 0.01s
     Running `target\release\hello_cargo.exe`
Hello, Rust world!

7、把Cargo當作習慣

? 對于簡單項目,Cargo并不比rustc提供了更多的優(yōu)勢,不過隨著開發(fā)深入,最終會證明它的價值,?旦程序壯?到由多個?件組成,亦或者是需要其他的依賴,讓 Cargo 協(xié)調構建過程就會簡單得多。

? 即便 hello_cargo 項??分簡單,它現在也使?了很多在你之后的 Rust ?涯將會?到的實??具。其實,要在任何已存在的項?上?作時,可以使?如下命令通過 Git 檢出代碼,移動到該項??錄并構建:

git clone example.com/test_project
cd test_project
cargo build

了解更多關于Cargo可以查閱Cargo相關文檔

8、總結

本章我們學習了Cargo的相關內容:

  • 使用 cargo new 創(chuàng)建項目
  • 使用 cargo build 構建項目
  • 使用 cargo run 一步構建并運行項目
  • 使用 cargo check 在不生成二進制文件的情況下檢查項目是否可編譯
  • 使用 cargo build --release 構建項目發(fā)行版本
  • 使用 cargo run --release 運行發(fā)行版本,可測試發(fā)布版本的運行時間

使? Cargo 的?個額外的優(yōu)點是,不管你使?什么操作系統(tǒng),其命令都是?樣的。所以從現在開始本書將不再為 Linux 和 macOS 以及 Windows 提供相應的命令。

? 到了這里我們可以開始Rust的旅程了,go! go! go!文章來源地址http://www.zghlxwxcb.cn/news/detail-435555.html

到了這里,關于Rust之Cargo的使用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 使用Cargo國內鏡像提升Rust開發(fā)效率

    Rust是一門現代化的系統(tǒng)編程語言,而Cargo則是Rust的官方包管理工具。在進行Rust項目開發(fā)時,由于網絡原因,從Crates.io下載依賴可能會很慢。為了提高開發(fā)效率,我們可以配置Cargo使用國內的鏡像源,以加速包的下載和構建過程。 步驟一:進入Cargo配置目錄 打開終端或命令提

    2024年02月21日
    瀏覽(27)
  • 【Rust】cargo update或者cargo build國內被墻失敗解決辦法

    cargo build 時下載失?。∕ac 10.13.4),提示: error: failed to download from https://crates-io.proxy.ustclug.org/api/v1/crates/actix-codec/0.3.0/download Caused by: [56] Failure when receiving data from the peer (Received HTTP code 500 from proxy after CONNECT) 或者提示: error: failed to download from https://crates-io.proxy.ustclug.org/api/v1

    2023年04月08日
    瀏覽(143)
  • ubuntu上安裝rust和cargo

    ubuntu上安裝rust和cargo

    第一種方法: 下面一句話就搞定。但特殊情況下(對rust版本有要求的時候)需要使用第2種方法 第2種方法: 不想用apt 運行后,會讓你選擇方式,選擇1,安裝。? How to Install Rust and Cargo on Ubuntu Other Linux

    2024年02月08日
    瀏覽(24)
  • rust學習-cargo和crates.io

    Cargo 有兩個主要的配置: (1)運行 cargo build 時采用的 dev 配置 (2)運行 cargo build --release 的 release 配置 Cargo.toml 文件沒任何 [profile. ] 時,Cargo 對每一個配置采用默認設置。 通過在[profile. ]對應的部分中增加任何定制的配置 構建目錄如下 Cargo.toml add-one/src/lib.rs add-two/src/lib

    2024年02月17日
    瀏覽(33)
  • Rust更換Cargo國內源,鏡像了寂寞

    當我寫作此文時,可能理解并不深刻。今日重讀 Crates.io 文檔,發(fā)現它理論上還是可以做到“既換皮又換身的”: A minimal registry can be implemented by having a git repository that contains an index, and a server that contains the compressed .crate files created by cargo package . A full-featured registry that supports

    2024年02月05日
    瀏覽(33)
  • Rust編程語言入門之cargo、crates.io

    通過 release profile 來自定義構建 在https://crates.io/上發(fā)布庫 通過 workspaces 組織大工程 從 https://crates.io/來安裝庫 使用自定義命令擴展 cargo release profile: 是預定義的 可自定義:可使用不同的配置,對代碼編譯擁有更多的控制 每個 profile 的配置都獨立于其它的 profile cargo 主要的

    2023年04月09日
    瀏覽(28)
  • 【跟小嘉學 Rust 編程】十四、關于 Cargo 和 Crates.io

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯結構化數據 【跟小嘉學 Rust 編程】六、枚舉

    2024年02月11日
    瀏覽(22)
  • 【Rust】Rust學習 第十四章進一步認識 Cargo 和 Crates.io

    【Rust】Rust學習 第十四章進一步認識 Cargo 和 Crates.io

    本章會討論 Cargo 其他一些更為高級的功能,我們將展示如何: 使用發(fā)布配置來自定義構建 將庫發(fā)布到?crates.io 使用工作空間來組織更大的項目 從?crates.io?安裝二進制文件 使用自定義的命令來擴展 Cargo Cargo 的功能不止本章所介紹的,關于其全部功能的詳盡解釋,請查看?文

    2024年02月12日
    瀏覽(24)
  • rust crate.io 配置國內源(cargo 國內源) warning: spurious network error (2 tries remainin...

    rust crate.io 配置國內源(cargo 國內源) warning: spurious network error (2 tries remainin...

    rust 筆記 Crate 國內源配置 作者 : 李俊才 (jcLee95):https://blog.csdn.net/qq_28550263?spm=1001.2101.3001.5343 郵箱 : 291148484@163.com 本文地址 :https://blog.csdn.net/qq_28550263/article/details/130758057 Rust 官方默認的 Cargo 源服務器為 crates.io,其同時也是 Rust 官方的 crate 管理倉庫,但是由于官方服

    2024年02月05日
    瀏覽(23)
  • Cargo, the Rust package manager, is not installed or is not on PATH. 解決方案

    今天在配置一個關鍵時需要執(zhí)行pip install logru,在執(zhí)行過程中出現了以下錯誤: ? error: subprocess-exited-with-error ? × Preparing metadata (pyproject.toml) did not run successfully. ? │ exit code: 1 ? ╰─ [6 lines of output] ? ? ? Cargo, the Rust package manager, is not installed or is not on PATH. ? ? ? This packag

    2024年02月09日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包