你好,我已经通过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