你好,我已经通过emcc(Emcripten前端)编译了C++文件.我期望的输出是一个.wasm file.js file来实现Java脚本.

我构建了React应用程序,它try 通过.js模块导入WebAssembly,如下所示.(./wasm/dist/my-module是EMCC编译的.js模块)

import { useEffect } from 'react';
import myModule from './wasm/dist/my-module'
import './App.css';

function App() {
  useEffect(() => {
    myModule().then((output: unknown) => console.log(output))
  }, [])

  
  return (
    <div className="App">
      <header className="App-header">
        <h1>Docker Wasm Builder.</h1>
      </header>
    </div>
  );
}

export default App;

问题是Chrome中的控制台显示错误"file:// protocol not allow",这很奇怪.因为我已经在Web服务器(Nginx)中构建了它并运行了输出. error from google chrome console

*我已经try 创建一个独立的.html文件并导入我的.js模块(从EMCC编译器).它工作得很好,但react 不佳.

我的EMCC脚本

emcc \
${OPTIMIZE} \
--bind \
--no-entry \
-s STRICT=1 \
-s ALLOW_MEMORY_GROWTH=1 \
-s MALLOC=emmalloc \
-s MODULARIZE=1 \
-s EXPORT_ES6=1 \
-s ENVIRONMENT=web \
-o ./my-module.js \
src/wasm/my-module.cpp

推荐答案

看一看this.基本上,编译成-o something.mjs并添加-s Single_FILE=1.这将为您提供一个.mjs,而不是常规的一对.js和.wasm,从而避免了所有的麻烦.

Javascript相关问答推荐

JavaScript替换子 node 导致它们更改为[对象HTMLTable SectionElement]

从外部访问组件变量-Vueejs

如何循环访问对象数组并以关键值形式获得结果?

创建1:1比例元素,以另一个元素为中心

Klaro与Angular的集成

Chart.js V4切换图表中的每个条,同时每个条下有不同的标签.怎么做?

类型自定义lazy Promise. all

React 17与React 18中的不同setState行为

如何找出摆线表面上y与x相交的地方?

从WooCommerce Checkout Country字段重新排序国家,保持国家同步

如何修复(或忽略)HTML模板中的TypeScript错误?'

在我的html表单中的用户输入没有被传送到我的google表单中

在拖放时阻止文件打开

WebGL 2.0无符号整数输入变量

覆盖TypeScrip中的Lit-Element子类的属性类型

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

如何利用CSS中的隐藏元素实现平滑扩展和防止网格行间隙

有没有办法通过使用不同数组中的值进行排序

如果对象中的字段等于某个值,则从数组列表中删除对象

在HTML5画布上下文中使用putImageData时,重载解析失败