有没有办法阻止emscripten创建窗口范围的全局"模块"?
我使用像emcc --bind -O3 --memory-init-file 0 whatever...
之类的东西生成一些.js。如果我包含输出脚本,则窗口对象会被各种内部emscripten函数和对象所占据。
我试图像这样包装生成的代码:
Some.Namespace.Whatever =(function(){...生成代码...;返回Module;})();
一切似乎都运行良好,但是emscripten仍然会创建窗口范围的全局"模块" (其他内部功能都消失了。)
答案 0 :(得分:0)
也许您可以使用pre和post js选项将代码包装在自执行匿名函数中? [0]所以他的前js是(function () {
,后js是})();
。这可以像使用Unix cat
的构建步骤一样手动完成。
那或者把它推到一个工人身上。 [1]
我认为emscripten不会在发出的代码中分配window.Module
或this.Module
,但我现在不是要检查的计算机,也许你可以吗?
答案 1 :(得分:0)
从今年2月4日开始this commit,我认为这是Emscripten的一部分> v1.29.9,如果代码被某种方法包装,则Module对象不会在全局范围内公开。