19得票3回答
如何从C/C++访问WebAssembly线性内存

我正在编写一个小型的C程序,旨在使用emcc编译为wasm并在Web浏览器中运行。由于wasm导出的函数只能接受简单的数字值作为参数输入和返回值,因此我需要在JavaScript API和编译后的WebAssembly代码之间共享内存,以便访问更复杂的数据类型,例如字符串或char数组。问题是...

7得票2回答
如何保存状态并返回到一个深层的C函数?

背景 我正在使用Emscripten将现有的C程序移植为在线游戏。 问题是,Emscripten希望程序围绕一个每秒调用60次的单个函数进行组织。这对于主游戏循环来说没有问题,但是在代码显示一组选项然后等待按键选择选项的地方有相当多的代码。这被表达为在调用层次结构中的深度函数,使用getc...

13得票2回答
“use asm” 究竟是什么?

据我所知,Asm.js只是JavaScript的一个严格规范,它使用JavaScript特性,而不是一种新语言。 例如,它提供了var a = e|0;而不是var a = e;. 我的问题是,如果Asm.js只是一个定义,并且可以通过改变变量和动态类型声明的方式来实现,那么"use as...

9得票2回答
如何在cmake中使用emscripten端口(SDL2和Freetype)

我想使用CMake将一个C++项目编译成webassembly。我使用emscripten并希望使用emscripten的SDL2和Freetype端口。通常,使用emcc编译时,要使用以下标志:-USE_SDL=2和-USE_FREETYPE=1,以便包含这些端口。然而,我不知道如何在CMa...

7得票1回答
使用Emscripten,能否从JavaScript调用C++函数?

我想要从一个C++库生成JavaScript包装器(以便在Web浏览器中可以使用C++代码),但是我不确定哪些工具最适合此目的。使用Emscripten,是否可以从C++库生成JavaScript库,以便在JavaScript中调用C++函数?

11得票3回答
在Ubuntu上安装Emscripten

我正在尝试在Ubuntu上安装Emscripten,但是Emscripten官方安装指南没有提供在Linux上安装Emscripten的任何说明。安装指南唯一的建议是: 如果你使用的是Linux系统,那么对你来说应该非常简单,不需要任何额外的指导。 我也阅读了Emscripten存储库中的...

39得票6回答
使用Boost和Emscripten

我有一个C++项目,想要将其转化为Web应用程序。为此,我想使用Emscripten来构建该项目。 该项目使用了一些外部库。我已经成功编译或找到了大多数库的JavaScript版本,现在我卡在了Boost库上。实际上,我甚至不知道如何开始使用Boost:它们使用一个引导脚本来生成构建库所需文...

13得票2回答
WASM能用于检查JS方法的完整性吗?

我正在尝试使用WebAssembly,并尝试找出一种验证WebAssembly模块使用的JS方法完整性的方法。 为了讨论的目的,假设二进制模块不可被黑客攻击(我知道这并不是事实),但JS端可以。 给定以下C代码:#include <emscripten.h> //js met...

13得票1回答
Emscripten WebWorker 的最小工作示例

我正在尝试使用emscripten在C++中构建基本的webworker示例。API看起来非常简单,但是我无法使其工作。实际上,我想在我的项目中实现这个功能,但是在失败后,我尝试制作了一个最小示例,但它也不能正常工作。 我有main.cpp:#include <emscripten/em...

7得票2回答
如何在具有cmake的项目依赖项中使用emscripten?

我正在尝试使用emscripten将一个具有以下开头包含的程序移植到WebAssembly(wasm): #include <Eigen/Geometry> #include <boost/filesystem.hpp> #include <dvo/core/i...