gpt4 book ai didi

c - 如何为 C 库编写 Emscripten 垫片

转载 作者:太空狗 更新时间:2023-10-29 16:12:17 27 4
gpt4 key购买 nike

如何为 C 库编写自定义 Emscripten 垫片? Emscripten 为某些 C 库(例如 SDL 和 OpenAL)捆绑了垫片,但对于其他库,您将不得不自己动手。

我所说的 shim 是指要移植的代码所依赖的 C 库的 JavaScript 替代品。

最佳答案

Emscripten 有一些 documentation on the subject ,尽管在撰写本文时还有些不完整。

首先,你需要用JavaScript写一个Emscripten“库”,我们假设对应的C库叫做Example:

example.js:

// "use strict";

var LibraryExample = {
// Internal functions
$EXAMPLE: {
internal_func: function () {
}
},
example_initialize: function (arg) {
EXAMPLE.internal_func()
}
}

autoAddDeps(LibraryExample, '$EXAMPLE')
mergeInto(LibraryManager.library, LibraryExample)

其次,您必须通过 emcc 的 --js-library 选项将您的 example.js 文件集成到构建中:

emcc --js-library shims/example.js -o project.js project.bc

现在函数 example_initialize 应该可用于 Emscripten 生成的 JS 代码,从而取代 C 库依赖。

关于c - 如何为 C 库编写 Emscripten 垫片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25800382/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com