emscripten asm.js的helloworld

阅读更多
git clone https://github.com/emscripten-core/emsdk.git

加压emsdk-portable.tar.gz

./emsdk install latest
./emsdk activate latest
source emsdk_env.sh

参考
中文
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 

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模拟器是否可以?




你可能感兴趣的:(c,javascript,asm.js)