跟著我們的新指南學(xué)習(xí)開發(fā) WebAssembly | Linux 中國
時(shí)間:2023-05-25 03:03:01 | 來源:網(wǎng)站運(yùn)營
時(shí)間:2023-05-25 03:03:01 來源:網(wǎng)站運(yùn)營
跟著我們的新指南學(xué)習(xí)開發(fā) WebAssembly | Linux 中國:
使用 WebAssembly 開發(fā)有很多不同的方向,這取決于你已經(jīng)知道的東西和你想建立的東西。
- 來源:https://linux.cn/article-15541-1.html
- 作者:Seth Kenlon
- 譯者:geekpi
(本文字?jǐn)?shù):2066,閱讀時(shí)長大約:2 分鐘)在過去的幾十年里,Web 瀏覽器作為最流行的跨平臺(tái)應(yīng)用經(jīng)久不衰。從另一個(gè)角度看瀏覽器,它是最受歡迎的應(yīng)用交付平臺(tái)之一。想想你使用的所有網(wǎng)站,它們?nèi)〈四氵^去用桌面上運(yùn)行的軟件進(jìn)行的活動(dòng)。你仍然在使用軟件,但你是通過瀏覽器來訪問它,而且是在別人的 Linux 服務(wù)器上運(yùn)行。在優(yōu)化我們所有人使用的軟件的永恒努力中,軟件開發(fā)世界早在 2019 年就引入了 WebAssembly,作為通過 Web 瀏覽器運(yùn)行編譯代碼的一種方式。應(yīng)用的性能比以往任何時(shí)候都要好,而且可以生成 WebAssembly 編碼的語言遠(yuǎn)不只是通常的 PHP、Python 和 JavaScript。
一個(gè)目標(biāo)和一種語言
關(guān)于 WebAssembly 的一個(gè)強(qiáng)大但也最令人困惑的地方是,“WebAssembly” 這個(gè)詞既指一種語言,也指一個(gè)目標(biāo)。WebAssembly 是一種匯編語言,但沒有多少人選擇直接用匯編寫代碼。即使是匯編語言,最終也會(huì)被轉(zhuǎn)換為二進(jìn)制格式,這也是計(jì)算機(jī)運(yùn)行代碼的要求。這種二進(jìn)制格式也被稱為 WebAssembly。不過這很好,因?yàn)檫@意味著你可以用你選擇的語言來寫一些最終以 WebAssembly 交付的東西,包括 C、C++、Rust、Javascript 和其他許多語言。
進(jìn)入 WebAssembly 的途徑是 Emscripten,這是一個(gè) LLVM 編譯器工具鏈,可以從你的代碼中產(chǎn)生 WebAssembly。
安裝 Emscripten
要在你的 Linux 或 macOS 電腦上安裝 Emscripten,請(qǐng)使用 Git:
$ git clone https://github.com/emscripten-core/emsdk.git
改變目錄進(jìn)入
emsdk
目錄并運(yùn)行安裝命令:
$ ./emsdk install latest$ ./emsdk activate latest
Emscripten 工具鏈中的所有內(nèi)容都安裝在
emsdk
目錄下,對(duì)系統(tǒng)的其他部分沒有影響。由于這個(gè)原因,在使用
emsdk
之前,你必須
源引(source) 它的環(huán)境:
$ source ./emsdk_env.sh
如果你打算經(jīng)常使用
emsdk
,你也可以在
.bashrc
中加入環(huán)境設(shè)置腳本。
要在 Windows 上安裝 Emscripten,你可以在 WSL 環(huán)境下運(yùn)行 Linux。
請(qǐng)?jiān)L問 Emscripten 網(wǎng)站 了解更多安裝信息。
Hello World
下面是一個(gè)用 C++ 編寫的簡單的 “Hello World” 應(yīng)用。
#include <iostream>using namespace std;int main() { cout << "Hello world"; return 0;}
先把它作為你的系統(tǒng)的標(biāo)準(zhǔn)二進(jìn)制文件來測試:
$ g++ hello.cpp -o world$ ./worldHello world
看到它像預(yù)期的那樣工作,用
emcc
把它構(gòu)建為 WebAssembly:
$ emcc hello.cpp -o world.html
最后,用
emrun
運(yùn)行它:
$ emrun ./world.html
emrun
工具是一個(gè)用于本地測試的方便命令。當(dāng)你在服務(wù)器上托管你的應(yīng)用時(shí),
emrun
就沒有必要了。
學(xué)習(xí)更多關(guān)于 WebAssembly 的知識(shí)
使用 WebAssembly 開發(fā)可以有很多不同的方向,這取決于你已經(jīng)知道的東西和你想建立的東西。如果你了解 C 或 C++,那么你可以用這些來寫你的項(xiàng)目。如果你正在學(xué)習(xí) Rust,那么你可以使用 Rust。甚至 Python 代碼也可以使用 Pyodide 模塊來作為 WebAssembly 運(yùn)行。你有很多選擇,而且沒有錯(cuò)誤的開始方式(甚至有 COBOL 到 WebAssembly 的編譯器)。如果你渴望開始使用 WebAssembly,
via:
https://opensource.com/article/23/2/webassembly-guide作者:Seth Kenlon 選題:lkxed 譯者:geekpi 校對(duì):wxy
本文由 LCTT 原創(chuàng)編譯,Linux中國 榮譽(yù)推出
關(guān)鍵詞:中國,學(xué)習(xí),指南,跟著