我在许多脚本中看到makeSetValue
,makeGetValue
和maybeExport
,例如preamble.js
但我不知道如何使用它们,或者它们是如何工作的,因为文档中没有提到这些功能。
示例代码:
function writeArrayToMemory(array, buffer) {
for (var i = 0; i < array.length; i++) {
{{{ makeSetValue('buffer++', 0, 'array[i]', 'i8') }}};
}
}
{{{ maybeExport('writeArrayToMemory') }}}
答案 0 :(得分:2)
{{{ ... }}}
是宏,它是在编译时提取的。
使用--js-library
等emcc --js-library lib_foo.js main.c ...
选项。
https://github.com/kripken/emscripten/blob/master/src/parseTools.js
lib_foo.js:
mergeInto(LibraryManager.library, {
writeArrayToMemory: function(array, buffer) {
for (var i = 0; i < array.length; i++) {
{{{ makeSetValue('buffer++', 0, 'array[i]', 'i8') }}};
}
}
});