Filesystems 使用文件系统FS编写Emscripten

Filesystems 使用文件系统FS编写Emscripten,filesystems,emscripten,Filesystems,Emscripten,我想知道如何在Emscripten中使用FS。我想我已经完成了wiki中提到的所有事情,但是我仍然得到了未捕获的引用error:FS未定义。如果我在生成的*.js文件中搜索literalFS没有出现,我认为应该会出现 这是我到目前为止的代码 InfoMedia.cpp #include <math.h> //testing include extern "C" { // testing function int int_sqrt(int x) { return sqrt(x)

我想知道如何在Emscripten中使用
FS
。我想我已经完成了wiki中提到的所有事情,但是我仍然得到了
未捕获的引用error:FS未定义
。如果我在生成的*.js文件中搜索literal
FS
没有出现,我认为应该会出现

这是我到目前为止的代码

InfoMedia.cpp

#include <math.h>  //testing include
extern "C" {

// testing function
int int_sqrt(int x) {
  return sqrt(x);
}

}// extern c 
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>
另外,如果我试图在编译时用

emcc-s EXPORTED_FUNCTIONS=“[''int_sqrt']”——嵌入文件gizmo.webm InfoMedia.cpp-o InfoMedia.js

我得到这个错误
uncaughttypeerror:Object#没有方法“FS\u createDataFile”

它位于我生成的js文件中的第1460行
Module['FS_createDataFile']('/','gizmo.webm',[26,69,223,…]),true,true)


FS永远不会插入到生成的js文件中。所以我怎么称呼这些东西并不重要。是否需要添加任何编译器选项来插入库功能?

非常简单。只需使用使用FS的函数,emscripten就会自动包含它。正如您在输出文件中看到的,尽管emscripten提供了比生成的输出文件中多得多的c lib,但它没有包含不必要的库函数

为了让想法更清晰,只需将您的InfoMedia.cpp更改为:

#include <math.h>  //testing include
#include <stdio.h>
extern "C" {

// testing function
int int_sqrt(int x) {
  printf ("Decimals: %d %ld\n", 1977, 650000L);  // use FS lib functionality
  return sqrt(x);
}

}// extern c
#包括//测试包括
#包括
外部“C”{
//测试功能
int_sqrt(int x){
printf(“小数:%d%ld\n”,1977,650000L);//使用FS库功能
返回sqrt(x);
}
}//外部c
prerun                                     init_fs.js:6
Uncaught ReferenceError: FS is not defined init_fs.js:7
#include <math.h>  //testing include
#include <stdio.h>
extern "C" {

// testing function
int int_sqrt(int x) {
  printf ("Decimals: %d %ld\n", 1977, 650000L);  // use FS lib functionality
  return sqrt(x);
}

}// extern c