/ / Jak makeSetValue, makeGetValue i możeExport działają w emscripten? - javascript, emscripten

Jak makeSetValue, makeGetValue i maybeExport działają w emscripten? - javascript, emscripten

Widzę makeSetValue, makeGetValue i maybeExport w wielu skryptach, na przykład w preamble.js

Ale nie wiem, jak ich używać ani jak one naprawdę działają, ponieważ funkcje te nie są wymienione w dokumentacji.

Przykładowy kod:

function writeArrayToMemory(array, buffer) {
for (var i = 0; i < array.length; i++) {
{{{ makeSetValue("buffer++", 0, "array[i]", "i8") }}};
}
}

{{{ maybeExport("writeArrayToMemory") }}}

Odpowiedzi:

2 dla odpowiedzi № 1

{{{ ... }}} jest makrem, jest wyodrębniany w czasie kompilacji. Posługiwać się --js-library opcja taka jak 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") }}};
}
}
});