最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Rust中的Cargo構(gòu)建、運行、調(diào)試

 更新時間:2022年09月28日 14:43:12   作者:共飲一杯無  
Cargo是rustup安裝后自帶的,Cargo?是?Rust?的構(gòu)建系統(tǒng)和包管理器,這篇文章主要介紹了Rust之Cargo構(gòu)建、運行、調(diào)試,需要的朋友可以參考下

基本概念

Cargo是rustup安裝后自帶的,Cargo 是 Rust 的構(gòu)建系統(tǒng)和包管理器。
Rust 開發(fā)者常用 Cargo 來管理 Rust 工程和獲取工程所依賴的庫。入門教程中使用 cargo new helloworld 命令創(chuàng)建了一個名為 helloworld 的工程,Cargo 新建了一個名為 helloworld 的文件夾并在里面部署了一個 Rust 工程最典型的文件結(jié)構(gòu)。這個 helloworld 文件夾就是工程本身。

Cargo相關(guān)命令

Cargo 除了創(chuàng)建工程以外還具備構(gòu)建(build)工程、運行(run)工程等一系列功能,具體如下:

#創(chuàng)建—個普通的項目:
cargo new project_name --bin 
#創(chuàng)建一個庫cargo build
cargo new lib_name --lib--vcs none
#構(gòu)建編譯,默認(rèn)會編譯到target/debug/project_name下
cargo build
#運行
cargo run
#構(gòu)建編譯發(fā)布版本,這會做很多優(yōu)化,并編譯到target/release/project_name下
cargo build --release
#如果你想修改cargo .lock文件的話,運行它
cargo update
#如果你只是想更新rand版本的話,運行它
cargo update-p rand
#運行test測試
cargo test abc
#檢查代碼,確保能通過編譯,但不產(chǎn)生執(zhí)行文件其速度比cargo build快得多編寫代碼時可以反復(fù)的使用cargo check檢查代碼,提高效率。
cargo check

創(chuàng)建工程目錄說明

cargo new helloworld可以創(chuàng)建一個helloword的工程目錄,目錄結(jié)構(gòu)如下:

image.png

src下面是代碼目錄。
target是編譯后的文件目錄。
.gitignore主要功能是屏蔽某些文件,使得這些文件不被追蹤(tracked),自然push后也不會上傳到github等平臺。
Cargo.lock編譯過程中自動生成的 Cargo.lock 文件,記錄了相關(guān)資源信息,保證我們以后可以重新構(gòu)建。
Cargo.toml為該工程的配置文件,這個關(guān)系類似于: package.json 是 npm 的配置文件。

VSCode 中配置 Rust工程

打開 helloworld工程目錄 之后,在里面新建一個新的文件夾 .vscode (注意 vscode 前面的點,如果有這個文件夾就不需要新建了)。在新建的 .vscode 文件夾里新建兩個文件 tasks.jsonlaunch.json,文件內(nèi)容如下:
tasks.json:

{ 
    ????"version":?"2.0.0", 
    ????"tasks":?[ 
    ????????{ 
    ????????????"label":?"build", 
    ????????????"type":?"shell", 
    ????????????"command":"cargo", 
    ????????????"args":?["build"] 
    ????????} 
    ????] 
    }

launch.json:

{ 
    ????"version":?"0.2.0", 
    ????"configurations":?[ 
    ????????{ 
    ????????????"name":?"(Windows)?啟動", 
    ????????????"preLaunchTask":?"build", 
    ????????????"type":?"cppvsdbg", 
    ????????????"request":?"launch", 
    ????????????"program":?"${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", 
    ????????????"args":?[], 
    ????????????"stopAtEntry":?false, 
    ????????????"cwd":?"${workspaceFolder}", 
    ????????????"environment":?[], 
    ????????????"externalConsole":?false 
    ????????}, 
            { 
    ????????????"name":?"(gdb)?啟動", 
    ????????????"type":?"cppdbg", 
    ????????????"request":?"launch", 
    ????????????"program":?"${workspaceFolder}/target/debug/${workspaceFolderBasename}.exe", 
    ????????????"args":?[], 
    ????????????"stopAtEntry":?false, 
    ????????????"cwd":?"${workspaceFolder}", 
    ????????????"environment":?[], 
    ????????????"externalConsole":?false, 
    ????????????"MIMode":?"gdb", 
    ????????????"miDebuggerPath":?"這里填GDB所在的目錄", 
    ????????????"setupCommands":?[ 
    ????????????????{ 
    ????????????????????"description":?"為?gdb?啟用整齊打印", 
    ????????????????????"text":?"-enable-pretty-printing", 
    ????????????????????"ignoreFailures":?true 
    ????????????????} 
    ????????????] 
    ????????} 
    ????] 
    }

調(diào)試程序的方法與其它環(huán)境相似,只需要在行號的左側(cè)點擊紅點就可以設(shè)置斷點,在運行中遇到斷點會暫停,以供開發(fā)者監(jiān)視實時變量的值。

到此這篇關(guān)于Rust之Cargo構(gòu)建、運行、調(diào)試的文章就介紹到這了,更多相關(guān)Rust Cargo構(gòu)建內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Rust實現(xiàn)一個表達式Parser小結(jié)

    Rust實現(xiàn)一個表達式Parser小結(jié)

    這篇文章主要為大家介紹了Rust實現(xiàn)一個表達式Parser小結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Rust利用tauri制作個效率小工具

    Rust利用tauri制作個效率小工具

    日常使用電腦中經(jīng)常會用到一個quicke工具中的輪盤菜單工具。但quicke免費版很多功能不支持,且它的觸發(fā)邏輯用的不舒服,經(jīng)常誤觸。所以本文就來用tauri自制一個小工具,希望對大家有所幫助
    2023-02-02
  • Rust并發(fā)編程之使用消息傳遞進行線程間數(shù)據(jù)共享方式

    Rust并發(fā)編程之使用消息傳遞進行線程間數(shù)據(jù)共享方式

    文章介紹了Rust中的通道(channel)概念,包括通道的基本概念、創(chuàng)建并使用通道、通道與所有權(quán)、發(fā)送多個消息以及多發(fā)送端,通道提供了一種線程間安全的通信機制,通過所有權(quán)規(guī)則確保數(shù)據(jù)安全,并且支持多生產(chǎn)者單消費者架構(gòu)
    2025-02-02
  • Rust?Atomics?and?Locks內(nèi)存序Memory?Ordering詳解

    Rust?Atomics?and?Locks內(nèi)存序Memory?Ordering詳解

    這篇文章主要為大家介紹了Rust?Atomics?and?Locks內(nèi)存序Memory?Ordering詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Rust中的不安全代碼詳解

    Rust中的不安全代碼詳解

    這篇文章主要為大家介紹了Rust中的不安全代碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Rust 函數(shù)詳解

    Rust 函數(shù)詳解

    函數(shù)在 Rust 語言中是普遍存在的。Rust 支持多種編程范式,但更偏向于函數(shù)式,函數(shù)在 Rust 中是“一等公民”,函數(shù)可以作為數(shù)據(jù)在程序中進行傳遞,對Rust 函數(shù)相關(guān)知識感興趣的朋友一起看看吧
    2021-11-11
  • Rust控制流運算符match的用法詳解

    Rust控制流運算符match的用法詳解

    match 是Rust中一個極為強大的控制流運算符,用于模式匹配和控制流的選擇,它允許將一個值與一系列的模式相比較,根據(jù)匹配的模式執(zhí)行相應(yīng)代碼,本文給大家詳細介紹了Rust控制流運算符match的用法,需要的朋友可以參考下
    2024-01-01
  • Rust字符串字面值的一些經(jīng)驗總結(jié)

    Rust字符串字面值的一些經(jīng)驗總結(jié)

    字符串有兩種表現(xiàn)形式,一種是基本類型,表示字符串的切片,以&str表示,另一種是可變的string類型,下面這篇文章主要給大家介紹了關(guān)于Rust字符串字面值的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Rust中的Copy和Clone對比分析

    Rust中的Copy和Clone對比分析

    這篇文章主要介紹了Rust中的Copy和Clone及區(qū)別對比分析,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Rust 中的 Packages 與 Crates模塊化構(gòu)建的基礎(chǔ)及開發(fā)流程

    Rust 中的 Packages 與 Crates模塊化構(gòu)建的基礎(chǔ)及開發(fā)流程

    Rust中的Crate是編譯器處理的最小代碼單元,可以是二進制或庫,每個Crate由一個CrateRoot文件(通常是src/main.rs或src/lib.rs)定義,本文給大家介紹Rust 中的 Packages 與 Crates模塊化構(gòu)建的基礎(chǔ)及開發(fā)流程,感興趣的朋友一起看看吧
    2025-02-02

最新評論

凤冈县| 苍山县| 永胜县| 萨嘎县| 桃园市| 山西省| 天祝| 衡水市| 耿马| 丽江市| 云浮市| 尚志市| 盘山县| 霍林郭勒市| 正宁县| 济源市| 阿拉善右旗| 上栗县| 北京市| 同仁县| 常州市| 海晏县| 普陀区| 咸阳市| 平顺县| 来宾市| 永嘉县| 孝昌县| 平昌县| 西贡区| 开平市| 环江| 太仆寺旗| 平罗县| 广灵县| 昆山市| 常宁市| 尼木县| 夏河县| 双柏县| 札达县|