C++ 如何将整个openCV库构建为静态库?
我想将整个openCV库构建成一个类似openCV.a的文件。我正在尝试使用.a二进制文件与我使用openCV库制作的cpp代码链接在一起,使用emscripten制作单个wasm文件 基本上,我想做的是将我制作的使用openCV库的cpp应用程序编译到webassembly中,这样我就可以在浏览器中运行它了。我在其他帖子上读到这样做的方法是将openCV作为.a文件获取,然后使用emscripten将其与我的cpp代码链接 如能详细解释如何生成.A文件,将不胜感激。请理解,我不是cpp开发人员,我对使用编译它的构建工具一无所知 谢谢。构建OpenCV静态库 我认为可以将整个OpenCVlibs构建为一个大的静态lib。但强烈建议建立单一和分离的静态LIB,用于细粒化混合电镀。OpenCV项目的某些部分也很难用Emscripten编译。如果您只想使用一组OpenCV函数呢?最终的.js或.wasm文件将太大 示例opencv-em 我们编写这个脚本是为了构建项目所需的一组静态lib。它构建静态libs并打包所需的include目录 步骤构建描述 我们已经设置了一个shell脚本。我们使用cmake进行编译,因为OpenCV项目目录中存在CMakeLists.txt,这大大简化了事情:C++ 如何将整个openCV库构建为静态库?,c++,opencv,static-libraries,webassembly,emscripten,C++,Opencv,Static Libraries,Webassembly,Emscripten,我想将整个openCV库构建成一个类似openCV.a的文件。我正在尝试使用.a二进制文件与我使用openCV库制作的cpp代码链接在一起,使用emscripten制作单个wasm文件 基本上,我想做的是将我制作的使用openCV库的cpp应用程序编译到webassembly中,这样我就可以在浏览器中运行它了。我在其他帖子上读到这样做的方法是将openCV作为.a文件获取,然后使用emscripten将其与我的cpp代码链接 如能详细解释如何生成.A文件,将不胜感激。请理解,我不是cpp开发人员
cmake .. -GNinja -DCMAKE_TOOLCHAIN_FILE=$EM_TOOLCHAIN $OPENCV_CONF $OPENCV_INTRINSICS -DCMAKE_CXX_FLAGS="$EM_FLAGS" -DCMAKE_C_FLAGS="$EM_FLAGS"
我们使用忍者作为编译器,但您可以使用make
-DCMAKE_TOOLCHAIN_FILE=$EM_TOOLCHAIN
这定义了本例中的工具链Emscripten:
EM_TOOLCHAIN="$EMSCRIPTEN/cmake/Modules/Platform/Emscripten.cmake"
当然,您需要使用安装Emscripten
OPENCV_CONF是一个变量,您可以在其中定义要构建的库以及要包含和排除的必要文件(这非常重要!)
还请注意,编译可能因Emscripten和OpenCV版本而异
下载
如果需要,可以在“发布”页面中下载。阅读使用的Emscripten和OpenCV版本。使用重建