欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

chapter Ⅰ 事情起因

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

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

1. 啟用wsl 2

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

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

不用理他,直接點(diǎn)擊右上角的關(guān)閉,這樣我們下次再打開就是使用的root用戶,不會(huì)創(chuàng)建多余的用戶和密碼,當(dā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)境變量還沒生效,手動(dòng)source一下或者直接關(guān)掉重新啟動(dòng)子系統(tǒng)窗口

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

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

rustup target add x86_64-unknown-linux-musl因?yàn)槲乙呀?jīng)安裝過所以顯示如下圖

2.3. 安裝"musl-gcc"

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

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

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

不用慌,運(yùn)行下面這條命令,安裝開發(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)閉窗口,然后重新打開一個(gè)子系統(tǒng)窗口輸入musl-gcc -v,如果正確顯示版本信息,則表示已經(jīng)安裝成功

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

在主系統(tǒng)打開rust項(xiàng)目文件夾,按住shift鍵,點(diǎn)擊鼠標(biāo)右鍵,點(diǎn)擊在此處打開linux shell

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

enjoy it!

chapter Ⅲ 總結(jié)

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

到此這篇關(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?連接?PostgreSQL?數(shù)據(jù)庫的詳細(xì)過程

    Rust?連接?PostgreSQL?數(shù)據(jù)庫的詳細(xì)過程

    這篇文章主要介紹了Rust?連接?PostgreSQL?數(shù)據(jù)庫的完整代碼,本文圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • rust 包模塊組織結(jié)構(gòu)詳解

    rust 包模塊組織結(jié)構(gòu)詳解

    RUST提供了一系列的功能來幫助我們管理代碼,包括決定哪些細(xì)節(jié)是暴露的、哪些細(xì)節(jié)是私有的,以及不同的作用域的命名管理,這篇文章主要介紹了rust 包模塊組織結(jié)構(gòu)的相關(guān)知識(shí),需要的朋友可以參考下
    2023-12-12
  • Rust指南之生命周期機(jī)制詳解

    Rust指南之生命周期機(jī)制詳解

    Rust?生命周期機(jī)制是與所有權(quán)機(jī)制同等重要的資源管理機(jī)制,之所以引入這個(gè)概念主要是應(yīng)對復(fù)雜類型系統(tǒng)中資源管理的問題,這篇文章主要介紹了Rust指南之生命周期機(jī)制詳解,需要的朋友可以參考下
    2022-10-10
  • 詳解Rust Substrate框架中的Runtime

    詳解Rust Substrate框架中的Runtime

    ubstrate是一個(gè)區(qū)塊鏈開發(fā)框架,它提供了一系列模塊化和可擴(kuò)展的組件,可以幫助開發(fā)人員快速構(gòu)建自定義區(qū)塊鏈。 Runtime是Substrate區(qū)塊鏈的核心部分,文中有詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-05-05
  • 深入了解Rust?結(jié)構(gòu)體的使用

    深入了解Rust?結(jié)構(gòu)體的使用

    結(jié)構(gòu)體是一種自定義的數(shù)據(jù)類型,它允許我們將多個(gè)不同的類型組合成一個(gè)整體。下面我們就來學(xué)習(xí)如何定義和使用結(jié)構(gòu)體,并對比元組與結(jié)構(gòu)體之間的異同,需要的可以參考一下
    2022-11-11
  • Rust中的panic定義及觸發(fā)條件詳解

    Rust中的panic定義及觸發(fā)條件詳解

    這篇文章主要為大家介紹了Rust中的panic定義及觸發(fā)條件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Rust  利用 chrono 庫實(shí)現(xiàn)日期和字符串互相轉(zhuǎn)換的示例

    Rust  利用 chrono 庫實(shí)現(xiàn)日期和字符串互相轉(zhuǎn)換的示例

    在Rust中,chrono庫提供了強(qiáng)大的日期和時(shí)間處理功能,使得日期與字符串之間的轉(zhuǎn)換變得簡單,本文介紹了如何在Rust中使用chrono庫將日期轉(zhuǎn)換成字符串,以及如何將字符串解析為日期,對于需要進(jìn)行日期時(shí)間格式化、解析或進(jìn)行時(shí)區(qū)處理的開發(fā)者來說,chrono庫是一個(gè)不可或缺的工具
    2024-11-11
  • Rust中的模塊系統(tǒng)之控制作用域與私有性詳解

    Rust中的模塊系統(tǒng)之控制作用域與私有性詳解

    這篇文章總結(jié)了Rust模塊系統(tǒng)的基本規(guī)則,包括如何聲明模塊、路徑訪問、私有性與公開性,以及如何使用`use`關(guān)鍵字簡化路徑引用,通過一個(gè)餐廳系統(tǒng)示例,展示了如何利用模塊劃分功能,并介紹了如何在其他模塊或二進(jìn)制crate中使用這些模塊
    2025-02-02
  • Rust語言之結(jié)構(gòu)體和枚舉的用途與高級(jí)功能詳解

    Rust語言之結(jié)構(gòu)體和枚舉的用途與高級(jí)功能詳解

    Rust 是一門注重安全性和性能的現(xiàn)代編程語言,其中結(jié)構(gòu)體和枚舉是其強(qiáng)大的數(shù)據(jù)類型之一,了解結(jié)構(gòu)體和枚舉的概念及其高級(jí)功能,將使你能夠更加靈活和高效地處理數(shù)據(jù),本文將深入探討 Rust 中的結(jié)構(gòu)體和枚舉,并介紹它們的用途和高級(jí)功能
    2023-10-10
  • Rust?搭建一個(gè)小程序運(yùn)行環(huán)境的方法詳解

    Rust?搭建一個(gè)小程序運(yùn)行環(huán)境的方法詳解

    rust是一門比較新的編程語言,2015年5月15日,Rust編程語言核心團(tuán)隊(duì)正式宣布發(fā)布Rust?1.0版本,本文給大家介紹Rust?搭建一個(gè)小程序運(yùn)行環(huán)境,以iOS?為例介紹開發(fā)環(huán)境的準(zhǔn)備,感興趣的朋友跟隨小編一起看看吧
    2022-05-05

最新評(píng)論