问题标签 [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 投票
1 回答
196 浏览

c++ - Emscripten:致命错误:找不到“tr1/unordered_map”文件

所以我正在尝试使用 emscripten 编译以下代码:

我的实际代码要大得多,但我在这里缩短了它以强调我的主要疑问(我已经留下了我正在使用的所有头文件)。此代码使用 g++ 完美编译并提供所有预期输出。

但是当我使用 将它编译为 Web 程序集时emcc test.cpp -s WASM=1 -o TRY.html,它给了我这个错误:

为什么 emcc 找不到这个文件?是否有另一种方法来处理 C++ 中的 unordered_maps?

我正在使用 tr1,因为我在 Stack Overflow 问题中遇到了同样的错误:C++ error: 'unordered_map' does not name a type

有人可以帮我吗?

0 投票
1 回答
183 浏览

c - Emscripten 编译错误:“'openssl/sha.h' 文件未找到”

我有一个名为“speed.c”的文件,我希望将其用于网络程序

这有效:

但这不会:

speed.c 中的函数称为“速度”。在 Emscripten 的网站上,它说编译器和其他编译器一样,所以这个让我很困惑。有什么帮助吗?谢谢!

0 投票
1 回答
569 浏览

c++ - 在 emcc 编译期间忽略 EXPORTED_FUNCTIONS

我正在尝试学习如何将 CPP 编译到 WASM 中,但我似乎无法让它正常工作。

我有一个简单的 CPP 代码,它实现了一个对给定整数进行平方的平方函数:

我可以将它编译成 WASM,但是当我尝试在 JS 中加载它时,它说没有导出函数。查看 WAT 版本(通过从 wabt 运行 wasm2wat)很明显,问题在于 squarer 函数没有被导出。

所以我尝试使用 EXPORTED_FUNCTIONS 标志再次编译(请参见以下行),但我收到以下警告并且 squarer 函数仍未导出。

当我编辑 WAT 以包含导出(通过更改func $_Z7squarerifunc (export "squarer"))并将其编译回 WASM 时,JS 成功加载了该函数,因此似乎缺少导出确实是问题所在。

我在两台 linux 机器上测试了它(一台运行 ubuntu 20.04,另一台运行 18.04,两者都按照MDN 网站中的说明从他们的 github 下载了最新版本的 emsdk )。我还尝试使用所有其他带有“EXPORT”的 emcc 标志,但它们都得到了相同的警告。

这是我第一次构建 WASM 模块,我从互联网上学到了所有东西,所以我可能错过了一些关键步骤。我做错了吗?

我是否使用过时的工具?

我应该使用 WASM 编译器的更好/更新的 CPP 吗?

谢谢!伊泰

0 投票
0 回答
13 浏览

emcc - Emscripten:如何确保链接库实际上是链接的

在与我一起探索时,webgl2_draw_packed_triangle.c我惊讶地发现,无论是否显式设置标志,只有在调用某些特定于 GL 的代码时才会创建生成代码中-lGL的全局对象。GL

例如,在尝试了webgl2_draw_packed_triangle.c以下在生成的 JS 中触发 GL 上下文的最小代码后:

也就是说,如果不调用 emscripten_webgl_create_context 甚至不会创建 GL 上下文。

所以,我的问题是 - 如何强制执行 GL 声明,这可能吗?

这是我的编译方式:

0 投票
1 回答
185 浏览

c++ - Bazel 目标在 gcc 中编译,但在 emscripten 中失败

我正在使用 Bazel 构建一个系统,其中我有一个 c++ 目标和一个 emscirpten (emcc) 目标来编译为 Web 程序集。两者都依赖于“myAPI”,它具有外部依赖项 libpng、libz、opencv 和其他一些。

这可以正确编译:

但是,这失败了:

这是我的API:

最后,这些是所有依赖项:

特征:

图书馆:

地理中心:

开放式简历:

spd日志:

库:

zLib:

我收到一堆包含错误,例如: 致命错误:找不到'pnglibconf.h'文件

据我了解,这是一个链接器问题,其中“pnglibconf.h”应该由编译器创建并编译到链接器应该能够链接的库中。

特别奇怪的是,唯一的依赖“:myAPI”用g++正确编译,所以一定是设置正确的linkoptions的问题?

任何帮助将不胜感激!

谢谢,

0 投票
0 回答
46 浏览

raylib - 尝试使用 Raylib for Web

我一直在关注这个

我有一个全新的 Ubuntu 20.04 LTS 安装。

首先,我看到我们需要 emscripten。我一直关注这里安装。

(这是在谷歌云上全新安装的 Ubuntu 上)

我也添加source "/home/celebisait_gmail_com/emsdk/emsdk_env.sh"到我的~/.bashrc.

直到这里,一切似乎都很好。

我跳到这里来验证一切是否安装正确。

好像

在一个基本hello_world.c程序上工作。

好的,我们继续安装raylib。

我将这些添加到我的.profile

然后我去raylib/src,我做:

emcc即使我显然有,我也找不到emcc

任何帮助,将不胜感激。

0 投票
0 回答
19 浏览

c - 编译简单代码时找不到 emscripten.h

我有一个包含 emscriptem.h #include <emscriptem.h> 的简单函数的 ac 文件

我也完全按照安装说明进行操作。

我得到:main.c:3:10:致命错误:找不到'emscriptem.h'文件当我运行时:emcc main.c -s WASM=1

我必须自己编译还是什么?无法在 emcc 安装文件夹中找到它。