emscripten asm.js的helloworld 博客分类: jslinuxjavascriptasm.jsemscripten cjavascriptasm.js
程序员文章站
2024-03-06 08:23:01
...
mac下安装:
centos7需要先装gcc8
参考https://blog.cles.jp/item/9428
git clone https://github.com/emscripten-core/emsdk.git
加压emsdk-portable.tar.gz
yum install -y epel-release
yum install -y cmake3 nodejs npm java-1.8.0-openjdk java-1.8.0-openjdk-devel
ln -s /usr/bin/cmake3 /usr/local/bin/cmake
需要用cmake3 ,卸载cmake2
先cmake --version
看下版本
./emsdk install latest
./emsdk activate latest
./emsdk install clang-incoming-64bit
./emsdk activate clang-incoming-64bit
source emsdk_env.sh
注意:clang-incoming-64bit必须有,否则版本对应不上,很多编译错误
参考
中文
asm.js 和 Emscripten 入门教程
http://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html
英文
https://kripken.github.io/mloc_emscripten_talk/cppcon.html#/
faq
http://kripken.github.io/emscripten-site/docs/getting_started/FAQ.html
生成example4.js 和example4.html
python -m SimpleHTTPServer 8080
#####################centos7下的安装
centos7.6的gcc是 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
新版本可能有问题,找个老版本安装一下
如果有的 下载错误,就去zips目录下,wget下载
编译clang出错有可能是内存不够,1G的vm肯定不行啊。
具体操作:
[root@meituan7 emsdk]# gcc --version
gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
[root@meituan7 emsdk]# emcc
WARNING:root:no input files
为安装成功
#############
Invalid verification text
https://vfsync.org/vm.html?login=1
frenchleaf
haoning
###########emscripten的教程 ######
helloworld:
http://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html
和c互相调用的交互
https://github.com/3dgen/cppwasm-book
遗留问题:
1.sdl怎么用? https://lyceum-allotments.github.io/2016/06/emscripten-and-sdl-2-tutorial-part-1/
2.必须是干净的c的代码么,如果是系统依赖的怎么办
3.mame模拟器是否可以?
brew install SDL2 SDL2_image emscripten
centos7需要先装gcc8
参考https://blog.cles.jp/item/9428
git clone https://github.com/emscripten-core/emsdk.git
加压emsdk-portable.tar.gz
yum install -y epel-release
yum install -y cmake3 nodejs npm java-1.8.0-openjdk java-1.8.0-openjdk-devel
ln -s /usr/bin/cmake3 /usr/local/bin/cmake
需要用cmake3 ,卸载cmake2
先cmake --version
看下版本
./emsdk install latest
./emsdk activate latest
./emsdk install clang-incoming-64bit
./emsdk activate clang-incoming-64bit
source emsdk_env.sh
注意:clang-incoming-64bit必须有,否则版本对应不上,很多编译错误
参考
中文
asm.js 和 Emscripten 入门教程
http://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html
英文
https://kripken.github.io/mloc_emscripten_talk/cppcon.html#/
faq
http://kripken.github.io/emscripten-site/docs/getting_started/FAQ.html
#include <emscripten.h> extern "C" { double SquareVal(double val) { return val * val; } } int main() { EM_ASM({ SquareVal = Module.cwrap('SquareVal', 'number', ['number']); var x = 12.5; alert('Computing: ' + x + ' * ' + x + ' = ' + SquareVal(x)); }); }
emcc -s EXPORTED_FUNCTIONS="['_SquareVal', '_main']" -s EXTRA_EXPORTED_RUNTIME_METHODS="['cwrap']" example4.cc -o example4.html
生成example4.js 和example4.html
python -m SimpleHTTPServer 8080
#####################centos7下的安装
centos7.6的gcc是 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
新版本可能有问题,找个老版本安装一下
如果有的 下载错误,就去zips目录下,wget下载
编译clang出错有可能是内存不够,1G的vm肯定不行啊。
具体操作:
yum install cmake -y git clone https://github.com/juj/emsdk ./emsdk list --old ./emsdk install sdk-tag-1.36.2-64bit ./emsdk activate sdk-tag-1.36.2-64bit source ./emsdk_env.sh
[root@meituan7 emsdk]# gcc --version
gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
[root@meituan7 emsdk]# emcc
WARNING:root:no input files
为安装成功
#############
Invalid verification text
https://vfsync.org/vm.html?login=1
frenchleaf
haoning
###########emscripten的教程 ######
helloworld:
http://www.ruanyifeng.com/blog/2017/09/asmjs_emscripten.html
和c互相调用的交互
https://github.com/3dgen/cppwasm-book
遗留问题:
1.sdl怎么用? https://lyceum-allotments.github.io/2016/06/emscripten-and-sdl-2-tutorial-part-1/
2.必须是干净的c的代码么,如果是系统依赖的怎么办
3.mame模拟器是否可以?