使用Emscripten将C ++ OpenCV代码编译为Javascript

时间:2019-05-27 02:41:58

标签: javascript c++ opencv webassembly

我有C ++,其中包含来自OpenCV的头文件。我正在尝试使用Emscripten将其转换为WebAssembly。当我尝试使用以下命令进行编译时:

pandas

我收到以下错误消息:

let arrr = [
    4,
    7,
    6,
    2,
    7,
    6
];

这是我第一次使用WebAssembler,因此我不确定该怎么做。我已经编译了OpenCV库,以创建opencv.js,如以下链接中的步骤所述:

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

我不确定在编译时是否需要包含此js文件,或者在编译时是否需要包含每个头文件。

2 个答案:

答案 0 :(得分:1)

OpenCV.js旨在像任何JavaScript代码一样包含在HTML文档中。然后,您可以从JavaScript代码访问几乎所有的OpenCV函数。

现在,您可以为WebAssembly构建OpenCV。好的方面是,您不需要更改JavaScript代码,因为OpenCV.js文件中包含WASM模块,但是您需要为WASM(WebAssembly)进行编译

看看这个链接 https://docs.opencv.org/master/d4/da1/tutorial_js_setup.html

答案 1 :(得分:0)

通常,在C / C ++代码中使用库时,在生成可执行二进制文件时必须将其链接。

因此,使用emscripten时,您首先必须编译该库,然后才能使用例如链接时使用静态库文件mylib.a,这样您的emcc命令将如下所示:

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