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

Rust中的Cargo構建、運行、調試

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

基本概念

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

Cargo相關命令

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

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

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

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

image.png

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

VSCode 中配置 Rust工程

打開 helloworld工程目錄 之后,在里面新建一個新的文件夾 .vscode (注意 vscode 前面的點,如果有這個文件夾就不需要新建了)。在新建的 .vscode 文件夾里新建兩個文件 tasks.jsonlaunch.json,文件內容如下:
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 
    ????????????????} 
    ????????????] 
    ????????} 
    ????] 
    }

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

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

相關文章

  • Rust實現一個表達式Parser小結

    Rust實現一個表達式Parser小結

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

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

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

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

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

    Rust?Atomics?and?Locks內存序Memory?Ordering詳解

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

    Rust中的不安全代碼詳解

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

    Rust 函數詳解

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

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

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

    Rust字符串字面值的一些經驗總結

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

    Rust中的Copy和Clone對比分析

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

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

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

最新評論

万载县| 合阳县| 花莲市| 腾冲县| 汪清县| 台南县| 得荣县| 富锦市| 潼关县| 岱山县| 彭水| 团风县| 团风县| 唐海县| 工布江达县| 乌拉特后旗| 呼图壁县| 文山县| 沙坪坝区| 临武县| 阿瓦提县| 永安市| 兴化市| 宁城县| 沧州市| 共和县| 旺苍县| 沙洋县| 磴口县| 伊吾县| 从化市| 常州市| 迁安市| 台山市| 白城市| 洛川县| 阳信县| 门头沟区| 青川县| 晋江市| 大名县|