ошибка TS2339: свойство cwrap не существует для типа EmscriptenModule - PullRequest
0 голосов
/ 06 мая 2020

Я компилирую C ++ в веб-сборку и javascript с помощью emscripten.

Я добавил cwrap в EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap", "stringToUTF8", "addFunction"]', чтобы сделать его доступным. Я использовал em cc для компиляции кода

emcc module.cc -o module.js -I../../kenlm-wasm/kenlm/include -I../../kenlm-wasm/boost_1_71_0/build/include -L../../kenlm-wasm/boost_1_71_0/build/lib/ -L../../kenlm-wasm/kenlm/build/lib -L${HOME}/.emscripten_cache/asmjs -lboost -lkenlm -lkenlm_util -lz -s EXPORTED_FUNCTIONS='["_main", "_NGramScore", "_FetchNGram", "_ReadNGram"]' -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap", "stringToUTF8", "addFunction"]' -s ALLOW_MEMORY_GROWTH=1 -s RESERVED_FUNCTION_POINTERS=20 -s FETCH=1 -DKENLM_MAX_ORDER=6 -O3

Но я получаю следующую ошибку.

src/lib/beam_search.ts:184:18 - error TS2339: Property 'cwrap' does not exist on type 'EmscriptenModule'.

184           Module.cwrap('NGramScore',
                     ~~~~~

src/lib/beam_search.ts:204:20 - error TS2339: Property 'cwrap' does not exist on type 'EmscriptenModule'.

204             Module.cwrap('ReadNGram', 'number', ['string', 'string', 'number']);
                       ~~~~~

src/lib/beam_search.ts:218:20 - error TS2339: Property 'cwrap' does not exist on type 'EmscriptenModule'.

218             Module.cwrap('FetchNGram', 'number', ['string', 'number']);
                       ~~~~~


Found 3 errors.

npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! ds2-tfjs@1.0.0 install: `tsc && npm run copy`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the ds2-tfjs@1.0.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/shruti/.npm/_logs/2020-05-06T07_56_52_084Z-debug.log

Я не могу понять причину. Я попытался выполнить установку fre sh со всеми установленными путями. Не помогло.

...