Компиляция кода C ++ OpenCV в Javascript с помощью Emscripten - PullRequest
2 голосов
/ 27 мая 2019

У меня есть C ++, который включает в себя заголовочные файлы из OpenCV. Я пытаюсь преобразовать это в WebAssembly с Emscripten. Когда я пытаюсь скомпилировать, используя:

em++ main.cpp -s WASM=1 -o seamCarve.html

Я получаю следующее сообщение об ошибке:

#include <opencv2/imgproc/imgproc.hpp>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
shared:ERROR: compiler frontend failed to generate LLVM bitcode, halting

Я впервые работаю с WebAssembler, поэтому я не совсем уверен, что делать. Я скомпилировал библиотеку OpenCV для создания opencv.js, как описано в шагах по следующей ссылке:

https://docs.opencv.org/3.4/d4/da1/tutorial_js_setup.html

Я не уверен, нужно ли мне включать этот js-файл в мою компиляцию или мне нужно включать каждый из файлов заголовков при компиляции.

1 Ответ

0 голосов
/ 13 июня 2019

Как правило, при использовании библиотек с вашим кодом C / C ++ вам придется связывать его при создании исполняемого двоичного файла.

Таким образом, при использовании emscripten сначала необходимо скомпилировать библиотеку, а затем вы можете использовать, например, файл статической библиотеки mylib.a при компоновке, поэтому ваша команда emcc будет выглядеть примерно так:

em++ -s WASM=1 main.cpp libopencv.a -o seamCarve.html

...