摘要:寫(xiě)在前面之前做過(guò)一段時(shí)間的的研究,寫(xiě)過(guò)幾個(gè),并且閱讀并翻譯了很多篇官方文檔,今天對(duì)這些東西做一個(gè)總結(jié)。主要是以鏈接形式提供,并附上簡(jiǎn)短的說(shuō)明。歡迎加入和技術(shù)交流群,群聊號(hào)碼
寫(xiě)在前面
之前做過(guò)一段時(shí)間的WebAssembly的研究,寫(xiě)過(guò)幾個(gè)WebAssembly Demo,并且閱讀并翻譯了很多篇Emscripten官方文檔,今天對(duì)這些東西做一個(gè)總結(jié)。
如果有需要對(duì)這塊知識(shí)了解的同學(xué),就可以按照這篇文章里的資料順序來(lái)學(xué)習(xí)。
主要是以鏈接形式提供,并附上簡(jiǎn)短的說(shuō)明。
這是一篇對(duì)WebAssembly進(jìn)行概括介紹的文章。里面也有demo。
鏈接: https://cunzaizhuyi.github.io...
2.WebAssembly API及調(diào)用過(guò)程圖示為了搞清楚WebAssembly的幾個(gè)Web API而畫(huà)的一個(gè)典型的使用JS調(diào)用wasm模塊所涉及的API。
圖片鏈接:https://github.com/cunzaizhuy...
3.WebAssembly的CanvasDemo介紹了一個(gè)基于canvas的圓球隨機(jī)運(yùn)動(dòng)小demo。
文章鏈接:https://cunzaizhuyi.github.io...
Demo鏈接:https://github.com/cunzaizhuy...
Emscripten官方文檔翻譯 1.Emscripten入門(mén)指導(dǎo)是對(duì)這個(gè)Emscripten項(xiàng)目的教學(xué)型介紹,原文在get started目錄下。
鏈接: https://segmentfault.com/a/11...
2.emcc編譯工具使用如何使用emcc工具將c/c++代碼編譯為wasm供js調(diào)用,從而生成web程序?如何使用emcc工具將c/c++代碼直接編譯為asm,從而生成web程序?以上兩個(gè)問(wèn)題的答案,要在emcc編譯命令的介紹里面去搜尋。
鏈接:https://segmentfault.com/a/11...
3.代碼可移植性與限制介紹將C/C++代碼編譯為wasm的過(guò)程中,有哪部分C/C++代碼不能被編譯、哪種代碼能編譯但是效率很低、哪種代碼可以通過(guò)轉(zhuǎn)化代碼寫(xiě)法從而進(jìn)行編譯等。
鏈接:https://cunzaizhuyi.github.io...
4.Emscripten運(yùn)行時(shí)環(huán)境因?yàn)閏/c++運(yùn)行時(shí)環(huán)境與web程序運(yùn)行時(shí)環(huán)境不同,因此一個(gè)Emscripten程序如果將來(lái)想要能夠被編譯成web程序,它就要對(duì)自身的運(yùn)行時(shí)環(huán)境進(jìn)行改造,填平、處理掉這些差異。
鏈接:https://cunzaizhuyi.github.io...
5.連接C程序和JavaScript代碼實(shí)際上你可以將Emscripten看成一個(gè)js API 和c、C++ sdk 優(yōu)化子集,即它自己是一套完整的東西。從這個(gè)思路出發(fā),說(shuō)到c和js的代碼交互,C里面怎么調(diào)用js,js里面又怎么調(diào)c,不過(guò)就是怎么用好emscripten sdk的問(wèn)題,這么說(shuō)好理解一點(diǎn)。
鏈接1:https://cunzaizhuyi.github.io...
鏈接2:https://cunzaizhuyi.github.io...
6.文件和文件系統(tǒng)根據(jù)上一個(gè)鏈接的說(shuō)法,這部分其實(shí)就是介紹了Emscripten項(xiàng)目的文件系統(tǒng)和c/c++的不同,為啥要有這些不同(因?yàn)橐m應(yīng)web環(huán)境),然后你怎么用我Emscripten的sdk中涉及文件系統(tǒng)的API等。
鏈接:https://cunzaizhuyi.github.io...
7.對(duì)opengl的支持介紹了Emscripten項(xiàng)目能夠支持的OpenGL的版本與支持程度。
鏈接:https://segmentfault.com/a/11...
8.調(diào)試代碼Emscripten提供了好幾種調(diào)試方式
鏈接:https://cunzaizhuyi.github.io...
9.優(yōu)化代碼其實(shí)也算emcc編譯工具使用教程之一,它集中在講解哪些emcc命令是與優(yōu)化代碼質(zhì)量、大小有關(guān)的。
鏈接:https://cunzaizhuyi.github.io...
總結(jié)以上文章都收錄在segmentfault的專(zhuān)欄。因?yàn)橹拔恼掳l(fā)表的時(shí)間是亂序的,所以這篇文章的主旨其實(shí)是整理一個(gè)合理的學(xué)習(xí)順序出來(lái)。
歡迎加入Wasm和emscripten技術(shù)交流群,群聊號(hào)碼:939206522
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/90789.html
摘要:解析下載后,需要引擎經(jīng)過(guò)兩個(gè)階段轉(zhuǎn)換成,然后再轉(zhuǎn)換為瀏覽器需要的中間字節(jié)碼。未來(lái)所有支持編譯到字節(jié)碼的編程語(yǔ)言,理論上都可以輸出。 了解WebAssembly原理 WebAssembly是一種可以在瀏覽器上運(yùn)行的二進(jìn)制可執(zhí)行格式文件。它將成為瀏覽器進(jìn)化史上又一次革命。 自從瀏覽器問(wèn)世以來(lái),javascript就成為瀏覽器上執(zhí)行程序的唯一標(biāo)準(zhǔn),越來(lái)越多的應(yīng)用程序通過(guò)javascript開(kāi)...
摘要:工作原理分點(diǎn)介紹官方解讀它可以從各類(lèi)現(xiàn)有的其他高級(jí)語(yǔ)言寫(xiě)的業(yè)務(wù)庫(kù)編譯而來(lái),比如下文提到的庫(kù),就是一種語(yǔ)言編寫(xiě)的剛體動(dòng)力學(xué)與碰撞檢測(cè)計(jì)算的庫(kù)。 1、WebAssembly工作原理 分點(diǎn)介紹 官方解讀 它可以從各類(lèi)現(xiàn)有的其他高級(jí)語(yǔ)言寫(xiě)的業(yè)務(wù)庫(kù)編譯而來(lái),比如下文提到的bullet庫(kù),就是一種C++語(yǔ)言編寫(xiě)的剛體動(dòng)力學(xué)與碰撞檢測(cè)計(jì)算的庫(kù)。根據(jù)調(diào)研,還有Haskell、Go、C#的語(yǔ)言的一些We...
摘要:如何判斷環(huán)境變量是否配置成功呢可以使用命令行工具在非目錄下,執(zhí)行,看看結(jié)果是不是類(lèi)似下面如果是,那么恭喜你已經(jīng)安裝成功了。 javascript 這門(mén)語(yǔ)言的性能無(wú)法與原生的C/C++代碼相媲美,為了進(jìn)一步提高網(wǎng)頁(yè)的性能,業(yè)界推出了WebAssembly技術(shù):將C語(yǔ)言編譯成了瀏覽器可以執(zhí)行的wasm文件。WebAssembly不僅提高了網(wǎng)頁(yè)的性能,而且還可以完成原來(lái)javascript無(wú)...
摘要:本文以這個(gè)模塊的開(kāi)發(fā)過(guò)程梳理如何應(yīng)用到前端工程中。注使用完成開(kāi)發(fā)至少需要基礎(chǔ)的編碼能力。具體其他信息可以參考上該模塊的。配置主要針對(duì)源碼文件,需要添加正確的進(jìn)行處理。下一篇應(yīng)用到前端工程下和 前言 WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine...
閱讀 3761·2021-08-11 11:16
閱讀 1631·2019-08-30 15:44
閱讀 2002·2019-08-29 18:45
閱讀 2282·2019-08-26 18:18
閱讀 1012·2019-08-26 13:37
閱讀 1577·2019-08-26 11:43
閱讀 2125·2019-08-26 11:34
閱讀 384·2019-08-26 10:59