以前作過一段時間的WebAssembly的研究,寫過幾個WebAssembly Demo,而且閱讀並翻譯了不少篇Emscripten官方文檔,今天對這些東西作一個總結。
若是有須要對這塊知識瞭解的同窗,就能夠按照這篇文章裏的資料順序來學習。
主要是以連接形式提供,並附上簡短的說明。c++
這是一篇對WebAssembly進行歸納介紹的文章。裏面也有demo。git
連接: https://cunzaizhuyi.github.io...github
爲了搞清楚WebAssembly的幾個Web API而畫的一個典型的使用JS調用wasm模塊所涉及的API。web
圖片連接:https://github.com/cunzaizhuy...canvas
介紹了一個基於canvas的圓球隨機運動小demo。segmentfault
文章連接:https://cunzaizhuyi.github.io... 工具
Demo連接:https://github.com/cunzaizhuy...學習
是對這個Emscripten項目的教學型介紹,原文在get started目錄下。優化
連接: https://segmentfault.com/a/11...翻譯
如何使用emcc工具將c/c++代碼編譯爲wasm供js調用,從而生成web程序?如何使用emcc工具將c/c++代碼直接編譯爲asm,從而生成web程序?以上兩個問題的答案,要在emcc編譯命令的介紹裏面去搜尋。
連接:https://segmentfault.com/a/11...
介紹將C/C++代碼編譯爲wasm的過程當中,有哪部分C/C++代碼不能被編譯、哪一種代碼能編譯可是效率很低、哪一種代碼能夠經過轉化代碼寫法從而進行編譯等。
連接:https://cunzaizhuyi.github.io...
由於c/c++運行時環境與web程序運行時環境不一樣,所以一個Emscripten程序若是未來想要可以被編譯成web程序,它就要對自身的運行時環境進行改造,填平、處理掉這些差別。
連接:https://cunzaizhuyi.github.io...
實際上你能夠將Emscripten當作一個js API 和c、C++ sdk 優化子集,即它本身是一套完整的東西。從這個思路出發,說到c和js的代碼交互,C裏面怎麼調用js,js裏面又怎麼調c,不過就是怎麼用好emscripten sdk的問題,這麼說好理解一點。
連接1:https://cunzaizhuyi.github.io...
連接2:https://cunzaizhuyi.github.io...
根據上一個連接的說法,這部分其實就是介紹了Emscripten項目的文件系統和c/c++的不一樣,爲啥要有這些不一樣(由於要適應web環境),而後你怎麼用我Emscripten的sdk中涉及文件系統的API等。
連接:https://cunzaizhuyi.github.io...
介紹了Emscripten項目可以支持的OpenGL的版本與支持程度。
連接:https://segmentfault.com/a/11...
Emscripten提供了好幾種調試方式
連接:https://cunzaizhuyi.github.io...
其實也算emcc編譯工具使用教程之一,它集中在講解哪些emcc命令是與優化代碼質量、大小有關的。
連接:https://cunzaizhuyi.github.io...
以上文章都收錄在segmentfault的專欄。由於以前文章發表的時間是亂序的,因此這篇文章的主旨實際上是整理一個合理的學習順序出來。
歡迎加入Wasm和emscripten技術交流羣,羣聊號碼:939206522