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

使用win10 wsl子系統(tǒng)如何將 rust 程序靜態(tài)編譯為linux可執(zhí)行文件

 更新時間:2025年05月08日 09:01:15   作者:Jiajie6591  
這篇文章主要介紹了使用win10 wsl子系統(tǒng)如何將 rust 程序靜態(tài)編譯為linux可執(zhí)行文件,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

chapter Ⅰ 事情起因

最近在學(xué)習(xí)rust, 想把一部分java服務(wù)遷移至rust編寫,但由于公司服務(wù)器都是linux系統(tǒng),所以在找windows下交叉編譯為linux可執(zhí)行文件的方法,把bing首頁搜索的結(jié)果試了個遍都不行, 始終報錯“musl-gcc”無法找到,搜遍全網(wǎng)都無法解決。 最終在我不斷嘗試的過程中逐漸發(fā)現(xiàn)解決辦法,遂將整個過程記錄下來。

chapter Ⅱ 安裝方法(windows安裝rust和vs code略過)

1. 啟用wsl 2

根據(jù)微軟的官方文檔,使用下面的命令會默認安裝wsl2 并下載linux鏡像,整個過程可能會重啟一到兩次wsl --install微軟官方文檔: https://learn.microsoft.com/zh-cn/windows/wsl/install下載好后打開微軟應(yīng)用商店,輸入你想裝的linux版本,點擊獲取

下載好后可以點擊啟動或者打開,出現(xiàn)以下提示

不用理他,直接點擊右上角的關(guān)閉,這樣我們下次再打開就是使用的root用戶,不會創(chuàng)建多余的用戶和密碼,當然也可以選擇根據(jù)提示創(chuàng)建用戶和密碼,使用起來除了一些命令需要加sudo之外沒有任何不同。

2. 添加開發(fā)環(huán)境

2.1. 打開rust官網(wǎng),復(fù)制以下命令,安裝rust工具鏈

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安裝完成后提示說環(huán)境變量還沒生效,手動source一下或者直接關(guān)掉重新啟動子系統(tǒng)窗口

完成后運行rustup -V查看一下rust的相關(guān)版本信息

2.2. 安裝rust的linux靜態(tài)編譯工具,等待安裝完成

rustup target add x86_64-unknown-linux-musl因為我已經(jīng)安裝過所以顯示如下圖

2.3. 安裝"musl-gcc"

打開musl官網(wǎng),https://musl.libc.org/ ,下載最新版的源代碼

將下載的壓縮包粘貼到子系統(tǒng)的home路徑下(其他路徑也可以)

直接復(fù)制粘貼,爽歪歪?。?!進入子系統(tǒng),cd /home,然后執(zhí)行tar -zxvf musl-1.2.5.tar.gz解壓縮,下載的哪個版本就解壓哪個版本依次等待執(zhí)行cd musl-1.2.5,./configure, make, make install./configure運行后可能會出現(xiàn)這個提示說沒有c編譯器

不用慌,運行下面這條命令,安裝開發(fā)套件,安裝完畢后繼續(xù)執(zhí)行./configure以及后面的命令yum groupinstall "Development Tools"

2.4. 將"musl-gcc"加入環(huán)境變量

執(zhí)行 vi /etc/profile, 將export PATH=$PATH:/usr/local/musl/bin/;加入到文件最后,關(guān)閉并保存

保存后關(guān)閉窗口,然后重新打開一個子系統(tǒng)窗口輸入musl-gcc -v,如果正確顯示版本信息,則表示已經(jīng)安裝成功

3. linux靜態(tài)編譯

在主系統(tǒng)打開rust項目文件夾,按住shift鍵,點擊鼠標右鍵,點擊在此處打開linux shell

開始編譯cargo build --release --target=x86_64-unknown-linux-musl等待編譯完成,上傳服務(wù)器,運行

enjoy it!

chapter Ⅲ 總結(jié)

因為以前沒有編譯過c++項目,所以對編譯相關(guān)的知識知之甚少,通過本次的實踐嘗試,學(xué)到了一些編譯鏈接的知識,留下一些微不足道的痕跡,希望對你有幫助。同時對于rust的編譯工具鏈表示你在干什么,msvc模式下的控制臺警告至今無法消除

到此這篇關(guān)于使用win10 wsl子系統(tǒng)將 rust 程序靜態(tài)編譯為linux可執(zhí)行文件的文章就介紹到這了,更多相關(guān)rust 程序靜態(tài)編譯為linux可執(zhí)行文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Rust 能夠取代 C 語言嗎

    Rust 能夠取代 C 語言嗎

    Rust 是 Mozilla 基金會的一個雄心勃勃的項目,號稱是 C 語言和 C++ 的繼任者,這篇文章主要介紹了Rust 能夠取代 C 語言嗎的相關(guān)知識,需要的朋友可以參考下
    2020-06-06
  • Rust中的內(nèi)部可變性與RefCell<T>詳解

    Rust中的內(nèi)部可變性與RefCell<T>詳解

    內(nèi)部可變性允許在不可變引用中修改內(nèi)部數(shù)據(jù),通過RefCell在運行時檢查借用規(guī)則,適用于Mock對象和多所有權(quán)的可變性場景,結(jié)合Rc和RefCell實現(xiàn)多所有者共享并修改數(shù)據(jù),但僅適用于單線程
    2025-02-02
  • Rust整合Elasticsearch的詳細過程(收藏)

    Rust整合Elasticsearch的詳細過程(收藏)

    Elasticsearch是基于Lucene構(gòu)建的開源分布式搜索和分析引擎,支持水平擴展和多語言調(diào)用,ELK(Elastic Stack)組合包括Elasticsearch、Kibana、Logstash和Beats,專注于日志數(shù)據(jù)分析和實時監(jiān)控,本文介紹Rust整合Elasticsearch的過程,一起看看吧
    2024-11-11
  • Rust 通過異步實現(xiàn)并發(fā)的方法示例

    Rust 通過異步實現(xiàn)并發(fā)的方法示例

    本文主要介紹了Rust 通過異步實現(xiàn)并發(fā)的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-06-06
  • Rust for循環(huán)語法糖背后的API場景分析

    Rust for循環(huán)語法糖背后的API場景分析

    for語句是一種能確定循環(huán)次數(shù)的循環(huán),for 語句用于執(zhí)行代碼塊指定的次數(shù),今天通過本文給大家介紹Rust for循環(huán)語法糖背后的API場景分析,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • Rust并發(fā)之異步編程應(yīng)用教程

    Rust并發(fā)之異步編程應(yīng)用教程

    這篇文章主要介紹了Rust并發(fā)之異步編程應(yīng)用教程,Rust的異步編程是一種強大的并發(fā)編程范式,它允許我們編寫高效、響應(yīng)迅速的應(yīng)用程序,通過掌握異步編程的高級應(yīng)用,我們可以充分利用系統(tǒng)資源,提高應(yīng)用程序的性能,需要的朋友可以參考下
    2026-05-05
  • Rust中into和from用法及區(qū)別介紹

    Rust中into和from用法及區(qū)別介紹

    這篇文章主要介紹了Rust中的?into和from使用及區(qū)別介紹,into和from是Rust語言中兩個用于類型轉(zhuǎn)換的函數(shù),它們分別屬于Into和From這兩個trait,本文通過實例代碼詳細講解,需要的朋友可以參考下
    2023-04-04
  • Rust中的Vector多值存儲使用方法

    Rust中的Vector多值存儲使用方法

    Vector在Rust中是一個非常靈活和強大的數(shù)據(jù)結(jié)構(gòu),通過有效利用它,我們可以更加方便地處理和操作多個值,使得代碼更加清晰和易于維護,這篇文章主要介紹了Rust中的Vector多值存儲的利器,需要的朋友可以參考下
    2024-02-02
  • Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法

    Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法

    在 Rust 中, 如果一個類型實現(xiàn)了 Iterator, 那么它會被同時實現(xiàn) IntoIterator, 具體邏輯是返回自身, 因為自身就是迭代器,這篇文章主要介紹了Rust可迭代類型迭代器正確創(chuàng)建自定義可迭代類型的方法,需要的朋友可以參考下
    2023-12-12
  • Rust 堆內(nèi)存指針 Box的實現(xiàn)示例

    Rust 堆內(nèi)存指針 Box的實現(xiàn)示例

    在 Rust 中,Box<T>是最基礎(chǔ)、最簡潔的智能指針,核心作用是將數(shù)據(jù)從棧內(nèi)存轉(zhuǎn)移到堆內(nèi)存,并通過獨占所有權(quán)機制管理堆內(nèi)存的分配與釋放,下面就來詳細的介紹一下,感興趣的可以了解一下
    2026-04-04

最新評論

游戏| 名山县| 山阳县| 旅游| 承德县| 巍山| 禄丰县| 翁牛特旗| 南投市| 六安市| 永州市| 太白县| 静海县| 铜山县| 兴山县| 江都市| 湖北省| 稻城县| 兰州市| 城口县| 错那县| 江达县| 楚雄市| 南充市| 岑巩县| 九龙县| 焦作市| 桦南县| 石楼县| 高阳县| 济阳县| 略阳县| 古丈县| 靖宇县| 封开县| 皋兰县| 义乌市| 安岳县| 金平| 嘉禾县| 沙雅县|