问题标签 [emcc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
17692 浏览

javascript - 有没有办法在 JavaScript 中使用 C++?

这里,我发现 JavaScript 是用 C++ 编写的。我还发现/推断出大多数 JavaScript 是 C++(例如Math.atan+""Math.atan.toString()yielding "function atan() { [native code] }")。我[native code假设是 C++,否则“隐藏”它的意义何在?

我的问题是有没有办法在 JavaScript 中使用 C++?在函数或 JavaScript 平台中使用它?

0 投票
2 回答
1205 浏览

gcc - 如何在 Emscripten 中设置 gcc 标志

我使用以下命令进行编译:

我现在想用 Emscripten 编译。如何将上述gcc命令转换为emcc命令?

0 投票
1 回答
1259 浏览

emscripten - WebAssembly LinkError:_sprintf 函数导入需要可调用

在 JS 中从 Emscripten 编译的 WASM创建WebAssembly.Instance ,其中包括对sprintf的调用,会导致此错误:

未捕获(承诺中) LinkError: WebAssembly.Instance(): Import #1 module="env" function=" _sprintf " 错误:函数导入需要可调用的...

Emscripten不包含sprintf作为 libc 的一部分吗?

编码:

编译命令:

emcc编译运行没有错误。

注释掉sprintf行运行没有错误,按预期返回 0。

这个错误的原因是什么,在使用 sprintf 时如何避免?

0 投票
0 回答
114 浏览

emscripten - 致命:必须设置初始堆栈指针,共享:错误

我想用 emscripten 构建香蕉面包 c++ 项目。

我添加了 BINARYEN_ROOT 介绍 ./emscripten 。

我还构建了 BINARYEN。

错误日志:

致命:必须设置 initialStackPointer 共享:错误:'/Volumes/POMOCNI/WWW-HTDOCS/emsdk-demos/emsdk/emsdk/binaryen/tag-1.38.31/bin/wasm-emscripten-finalize /var/folders/hf/ (pk7l6fn14pj6qft1ns016bqh0000gn/T/emscripten_temp_oiJjbb/tmpDk949v.wasm -o /var/folders/hf/pk7l6fn14pj6qft1ns016bqh0000gn/T/emscripten_temp_oiJjbb/tmpDk949v.wasm.o.wasm24'base-features 失败)编译失败!make: *** [客户端] 错误 1

我的 src 是单个文件:

我的生成文件:

0 投票
1 回答
503 浏览

compilation - 使用 Emscripten 构建时如何包含库头?

我正在尝试在 Ubuntu 18.04 上构建codecbox.js,这涉及使用 emcc 构建 FFmpeg。我一直被误导性libmp3lame >= 3.98.3 not found错误所困扰。就我而言,libmp3lame 安装没有问题。进一步排查FFmpeg的configure脚本后,发现下面的测试文件用emcc编译失败:

我明白了fatal error: 'lame/lame.h' file not found

我在其中找到了标题,/usr/include/lame所以我尝试使用emcc -I/usr/include. 这消除了错误,但引入了许多其他错误。

然后我读到(例如这里)我不应该使用本地系统头文件,当我添加选项时会发生这种情况-I/usr/include

那么,在使用 SDK 中提供的 Emscripten 捆绑系统头文件时,确保 emcc 找到我的库头文件的正确方法是什么?

0 投票
1 回答
657 浏览

c - 与 emscripten 共享内存 ('sys/shm.h')

我一直在通过尝试编译一些使用“sys/shm.h”的基本 wasm 示例来探索 emscripten

这是我要编译的代码:

这是我的编译输出:

我猜 emscripten 中有共享内存支持,但我无法wasm-ld正确链接它。任何人都可以帮忙吗?

谢谢,盖尔

0 投票
1 回答
271 浏览

c++ - Webassembly - 尝试编译代码缓冲区并通过 EM_JS 通过 C 执行它

我正在尝试使用 webassembly,并且我制作了一个玩具模块,可以在 C 中蛮力素数

}

在 Windows 中用 emcc /O3 编译它会得到以下字节流:

大多数人可能难以理解,但 VSC 的 WASM 到 WAT 工具表明这代表以下 WASM:

从另一个程序调用以下 EM_JS,其意图是来自 WASM,它告诉 javascript 引擎编译一些 WASM,然后执行它。

我收到此错误:

我不完全确定该去哪里,这主要是对 webassembly 的限制进行试验。

0 投票
0 回答
186 浏览

makefile - 有没有人尝试使用 clang/emcc 将 OpenBLAS 编译为 Webassembly?

在 linux 系统上的 OpenBLAS 根目录中,已经加载了 emcc sdk(在 emsdk 目录中,source ./emsdk_env.sh

我试图使用 emcc 来编译 OpenBLAS make CC=emcc NOFORTRAN=1 HOSTCC=emcc BINARY=64 libs,但它抱怨 cpuid.S。

我知道这是一个程序集文件,所以我也尝试使用 clang: make CC="clang --target=wasm32" NOFORTRAN=1 HOSTCC=clang BINARY=64 libs。然后我收到一条错误消息:

致命错误:后端错误:当前不支持 64 位 WebAssembly (wasm64)。

这是否意味着,不能使用 OpenBLAS 为 Webassembly x64 使用的静态链接创建 .a 库?有没有人在类似的用法上运气好?提前致谢!

我正在使用 clang 版本 10.0.0、emcc 版本 1.39.13 和 openBLAS 最新代码 (0.3.9.dev.a)。

0 投票
2 回答
861 浏览

opengl-es - 为什么我在 emscripten 使用“#version 300 es”得到“不支持的着色器版本”?

我不知道为什么#version 300 es在我的顶点着色器中使用最新的 emscripten 1.39 时会收到“不支持的着色器版本”错误消息。有了#version 100它可以正常工作。

对于我使用的内置emcc -s main.cpp -o index.html --shell-file shell.html -s USE_SDL=2 -s FULL_ES3=1

信息:

我做错了什么?

0 投票
1 回答
46 浏览

c++ - 编译依赖于 QTCore 库的 WASM

我有一个 MS Visual Studio 2015 项目,我在其中创建了一个类测试:

在 Visual Studio 项目属性中,我已经链接了 QTCore 库并包含在内。VS中的构建是成功的。

现在,我想使用这个类来创建 web-assembly api。要在 web-assembly 中编译此代码,我在终端中运行了以下命令:

我收到以下错误:

如何构建依赖于其他一些外部库的类?