티스토리 뷰
공부합시다/Javascript
[Javascript] WebAssenbly Error - Uncaught (in promise) LinkError
신규_유저 2022. 7. 5. 16:52
웹어셈블리 인 액션 예제를 따라하다가 만나게 된 에러
Uncaught (in promise) LinkError: WebAssembly.instantiate(): Import #0 module="env" function="__memory_base" error: global import must be a number, valid Wasm reference, or WebAssembly.Global object
책이랑 똑같이 했는데 안 된다.
더보기
WebAssembly in Action (p.70 ~ 82)
1. side_module.c 파일 만들기
int Increment(int value) {
return (value + 1);
}
2. 웹어셈블리 모듈로 컴파일
emcc side_module.c -s SIDE_MODULE=2 -O1 -s EXPORTED_FUNCTIONS=['_Increment'] -o side_module.wasm
3. side_module.html 작성
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
</head>
<body>
HTML page I created for my WebAssembly module.
<script>
const importObject = {
env: {
__memory_base: 0,
}
};
WebAssembly.instantiateStreaming(fetch("side_module.wasm"),
importObject).then(result => {
const value = result.instance.exports.Increment(17);
console.log(value.toString());
});
</script>
</body>
</html>
해결방법 : 컴파일 시 최적화 플래그 -O1에서 -O2로 변경
emcc side_module.c -s SIDE_MODULE=2 -O2 -s EXPORTED_FUNCTIONS=['_Increment'] -o side_module.wasm
참고 자료
끝!
반응형
LIST
'공부합시다 > Javascript' 카테고리의 다른 글
글자 수 제한(maxlength) (2) | 2022.09.28 |
---|---|
[Javascript] Uncaught TypeError: Module._malloc is not a function (0) | 2022.07.06 |
[Javascript] stream 활용하기 (0) | 2022.07.05 |
[Javascript] Web Worker 사용하기 (0) | 2022.06.21 |
[Javascript] wasm - c 함수 호출 (0) | 2022.06.20 |
댓글