• huge
    2020-10-26
    我照着例子,试着编译一段求md5的代码, 使用#include <openssl/md5.h> 报错:fatal error: 'openssl/md5.h' file not found 这种依赖第三方库的情况,怎么处理呢

    作者回复: 你可以自己写一个 CMakeLists.txt 来让编译器自动查找头文件的所在位置,比如用 include_directories 指令来指定头文件的查找位置。具体可以参考 CMake 的官方文档,或者找找相关的文章。或者如果使用 Clang 也可以看下 Clang 的 -I 参数。

    
    2
  • 军秋
    2021-03-18
    编译提示:clang-6.0: error: unsupported option '--no-entry' 是我版本太低了吗? clang的官方文档也没找到--no-entry 选项。 emcc -v emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.4 clang version 6.0.1 (https://github.com/emscripten-core/emscripten-fastcomp-clang 98df4be387dde3e3918fa5bbb5fc43e1a0e1daac) (https://github.com/emscripten-core/emscripten-fastcomp 6c7e775325067e33fa60611e619a8b987b6d0c35) (emscripten 1.38.44 : 1.38.31) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /emsdk_portable/clang/tag-e1.39.4/build_tag-e1.39.4_64/bin Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.3.0 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.3.0 Candidate multilib: .;@m64 Selected multilib: .;@m64 shared:INFO: (Emscripten: Running sanity checks)
    展开

    作者回复: --no-entry 应该是传给 Linker 的参数,参考:https://lld.llvm.org/WebAssembly.html,可以尝试升级一下 Emscripten 的版本。

    
    1
  • 张凯
    2020-11-05
    大致思路表述明白了,WebAssembly.instantiate这个函数是我们写在JS中?

    作者回复: 是的。

    
    1
  • 木瓜777
    2022-09-15 来自湖北
    基于 OpenGL 编写的 C/C++ 应用编译成 Wasm Web 应用,而无需做任何源代码上的修改。Emscripten 会通过相应的 JavaScript 胶水代码来处理好 OpenGL 与 WebGL 的调用映射关系,让你真正地做到“无痛迁移”。 请问目前有没有开源的例子啊?

    作者回复: 开源的例子是指?大公司在用的案例吗?

    
    
  • Andy
    2021-06-24
    老师: 如果有一个cc文件,要编出来wasm,如下这些写非常简单 emcc dip.cc -s WASM=1 -O3 --no-entry -o dip.wasm 但是如果有很多cc文件,并且在不同的路径中,上面这个命令应该怎么写? 如果这些cc依赖第三方库,比如opencv,应该怎么编译? 如果我们自己的cc文件之前都是用cmake编译的,现在要想编译出来wasm,应该怎么做? 谢谢啦

    作者回复: 多个文件也可以直接都列在 emcc 后面,或者通过 CMakeFile 来组织项目的构建依赖关系,然后再使用 Emscripten 的 emconfigure/emmake 来构建项目也是可以的。具体可以参考:https://emscripten.org/docs/compiling/Building-Projects.html

    
    
  • champ
    2021-01-18
    我是这样计算帧率的: const records = [] let lastDrawTime = 0 function draw() { if (lastDrawTime !== 0) { const duration = Date.now() - lastDrawTime records.push(duration) } lastDrawTime = Date.now() //... setTimeout(draw, 0) } 这样算出来的帧率,在不开启渲染的情况下为170FPS左右,js渲染为80FPS左右,wasm渲染为95FPS左右,好像性能提升并不是很明显。 另外,我发现同样的算法,wasm算出来的图像显示效果要比js算出来的好很多,不知道是什么原因? 老师能解答下吗?

    作者回复: 这里提到的显示效果是指?

    共 2 条评论
    
  • Zion
    2021-01-28
    2019年的时候,了解了几个月webassembly,由于自身原因当时的感觉就是:webassembly只能做些数据转换加密.希望作者再出一些实用webassembly的课程
    
    1
  • Bachue Zhou
    2023-05-11 来自上海
    数据不能有更好地传递方式吗?我觉得通过直接设置线性内存的内容我不太能接受,不能直接把数据通过 WASM 方法的参数送进去吗?
    
    
  • Jason Yu 于航
    2021-04-29
    源码可以参考这里:https://github.com/Becavalier/geektime-wasm-tutorial。
    共 1 条评论
    