FS
Emscripten でをどのように使用するのか疑問に思っています。wiki に記載されていることはすべて実行したと思いますが、まだUncaught ReferenceError: FS is not defined
. 結果の *.js ファイルでリテラルを検索するFS
と、出現はありません。存在するはずだと思いました。
ここに私がこれまでに持っているコードがあります。
InfoMedia.cpp
#include <math.h> //testing include
extern "C" {
// testing function
int int_sqrt(int x) {
return sqrt(x);
}
}// extern c
でコンパイル
emcc -s EXPORTED_FUNCTIONS="['_int_sqrt']" InfoMedia.cpp -o InfoMedia.js
init_fs.js
var Module = {
'print': function(text){
console.log(text)
},
'preRun' : function(){
console.log('prerun');
FS.createPath('/', 'home/user1', true, true);
},
'noInitialRun': true,
};
example.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>InfoMediaJS-Example</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>
<script type="text/javascript" src="init_fs.js"></script>
<script type="text/javascript" src="InfoMedia.js"></script>
<script type="text/javascript">
run();
</script>
</head>
<body></body>
</html>
これをクロムで実行した後、preRunが呼び出され、エラーが発生します。
prerun init_fs.js:6
Uncaught ReferenceError: FS is not defined init_fs.js:7
さらに、コンパイル時にファイルを埋め込もうとすると
emcc -s EXPORTED_FUNCTIONS="['_int_sqrt']" --embed-file gizmo.webm InfoMedia.cpp -o InfoMedia.js
このエラーが発生しますUncaught TypeError: Object #<Object> has no method 'FS_createDataFile'
これは、生成された js ファイル内のこの行http://pastebin.com/Mu1qfG25 @ line 1460
にあります。Module['FS_createDataFile']('/', 'gizmo.webm', [26, 69, 223,....]), true, true);
結果の js ファイルに FS が挿入されることはありません。だから私がそのFSのものをどのように呼ぶかは問題ではありません。そのライブラリ機能を挿入するために追加する必要があるコンパイラ オプションはありますか?