Emscripten 使用文件系统 FS

2024-01-03

我想知道如何使用FS在 Emscripten 中。我想我已经完成了维基中提到的所有事情,但我仍然得到Uncaught ReferenceError: FS is not defined。如果我在生成的 *.js 文件中搜索文字FS没有发生,我认为应该有。

这是我到目前为止的代码。

信息媒体.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

结果在InfoMedia.js@pastebin http://pastebin.com/eKwwsx75

init_fs.js

var Module = {
  'print': function(text){ 
    console.log(text) 
  },
  'preRun' : function(){
    console.log('prerun');
    FS.createPath('/', 'home/user1', true, true);
  },
  'noInitialRun': true,
};

示例.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>

在 chrome 中运行此命令后,调用 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 http://pastebin.com/Mu1qfG25@1460号线Module['FS_createDataFile']('/', 'gizmo.webm', [26, 69, 223,....]), true, true);

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


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

为了让事情变得清楚,只需将 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Emscripten 使用文件系统 FS 的相关文章

  • Linux:大型 int 数组:mmap 与查找文件?

    假设我有一个数据集 它是存储在 4TB HDD ext4 文件系统上的文件中的 1e12 32 位整数 4 TB 数组 考虑到数据很可能是随机的 或者至少看起来是随机的 pseudo code for long long i 0 i lt
  • 什么是 ls -F (ls --classify) [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 看着普通旧版的手册页ls http linux die net man 1 ls我看到有一个标志 F F classify append
  • 有没有办法立即检查目录是否正在使用?

    我想使用 Directory Move 移动目录及其所有子目录 不过 在此之前 我想检查该目录及其子目录中的任何文件和子文件是否正在被其他进程使用 然后 在移动之前 我想将目录锁定到其他进程 这样我就可以确保 Directory Move
  • 如何桥接 JavaScript(参差不齐)数组和 std::vector> 对象?

    在 JavaScript 中 我有一个 线 列表 每条线都由不定数量的 点 组成 每个点都有以下形式 x y 所以它是一个 3D 参差不齐的数组 现在我需要在 emscripten 的帮助下将它传递给我的 C 代码 embind https
  • 未知文件类型:basic archive.of(boost 和 emscripten)

    我正在尝试在浏览器内反序列化文件 使用 boost serialization 我用 emscripten 编译 boost 显然没有问题 当编译 实际上是链接 我的程序时 我收到错误 wasm ld error unknown file
  • 创建文件系统“驱动程序”

    我想为 Windows 物理磁盘上的自定义文件系统创建一个 驱动程序 我不完全知道解释它的最佳方式 但该设备已经具有适当的驱动程序以及 Windows 与之通信的所有内容 但我希望用户能够将设备插入到他们的电脑 将其显示在 我的电脑 中 并
  • java中的内存文件系统

    我想用Java创建一个简单的内存文件系统 它有一个根目录 并且能够创建新的子目录 在该目录中 我们可以创建新文件 写入文件 读取文件 删除文件以及重命名文件 您能否提供一些从哪里开始的建议 简单的代码或资源 自定义文件系统提供程序必须实现
  • Linux 上的监控/审计文件删除

    我的应用程序部门之一的 beam 文件之一正在被删除 我不确定删除的内容 方式 有没有办法监视或审核文件以查看删除该文件后会发生什么 我正在使用 RedHat 发行版 是的 您可以使用审核守护程序 你没有说哪个 Linux 发行版 基于Re
  • 使用 fnmatch.filter 按多个可能的文件扩展名过滤文件

    给出以下一段 python 代码 for root dirs files in os walk directory for filename in fnmatch filter files png pass 如何过滤多个扩展名 在这种特殊情
  • 如何在手机SD卡或其他位置搜索文件

    我想搜索用户移动设备上具有特定扩展名的文件 我尝试搜索但找不到任何直接的 API 是否有特定的 API 或者是否有实现相同目的的繁琐方法 或者是否有一种机制可以调用 linux 调用 find 或类似的东西 Thanks boolean i
  • DropBox Mac 客户端如何工作?

    我一直在看DropBox http www getdropbox com install os macMac 客户端和我目前正在研究为不同的服务实现类似的界面 他们究竟是如何与这样的取景器交互的 我非常怀疑文件夹中表示的这些对象是每次加载时
  • 如何以编程方式阻止连接到手持设备的 PC 进行文件同步(从设备抓取文件)?

    如前所述here https stackoverflow com questions 28328063 which branches of the registry does a ce device read 我向手持应用程序添加了代码 以
  • 使用 WinForms TreeView 递归目录列表?

    我想制作一个树视图 显示系统上的所有文件夹 并且仅显示音乐文件 例如 mp3 aiff wav 等 我记得读到我需要使用递归函数或类似的东西 通常大多数计算机都有数千个文件夹和数十万个文件 因此递归地在 TreeView 中显示所有这些文件
  • 如何在嵌入式Linux中高效地在VFAT分区上创建大文件

    我正在尝试在嵌入式 Linux 盒子中使用 dd 命令在 VFAT 分区上创建一个大的空文件 dd if dev zero of mnt flash file bs 1M count 1 seek 1023 目的是跳过前 1023 个块并在
  • 使用 FileSystemWatcher 从文件中获取新行

    我正在观看一个包含以下代码的文件 FileSystemWatcher watcher new FileSystemWatcher watcher Path C watcher Filter t log watcher Changed new
  • 我们如何获取不同文件系统使用的文件分隔符?

    大家下午好 据我了解 Android 有 至少 2 个文件系统 一个用于 内部 存储 例如 data和 system 另一个用于 外部 存储 例如 mnt sdcard 这意味着当我们将文件保存到 内部 存储时 Context getFil
  • 在Python中获取目录基名的优雅方法?

    我有几个脚本将目录名称作为输入 并且我的程序在这些目录中创建文件 有时我想获取给程序的目录的基本名称 并用它在目录中创建各种文件 例如 directory name given by user via command line output
  • 如果 DirectoryInfo.GetFiles().Length 超过 Int32.MaxValue 怎么办?

    由另一个question https stackoverflow com questions 3766540 error on maximum number of files 3767265 3767265关于文件夹中的最大文件数 我注意到
  • 如何在 Windows 7 中使用 Python 廉价地创建非常大的文件? [复制]

    这个问题在这里已经有答案了 可能的重复 在Windows系统上快速创建大文件 https stackoverflow com questions 982659 quickly create large file on a windows s
  • 存档操作顺序的保证

    我想知道文件 文件系统上的操作顺序是否有任何保证 假设我有一个文件foo dat我更新如下 lseek fd pos a SEEK SET write fd data a size a lt Operation A lseek fd pos

随机推荐