ip做网站需要过白名单吗,在线做头像网站有哪些,WordPress已安装主题,企业服务中心组建方案文章目录 开发环境安装opencv环境 实践出真知完整项目效果图 踩坑fatal error: opencv2/opencv.hpp file not found增加软链ln#xff08;无效#xff09;改用自行安装opencv#xff0c;再显示指定lib路径 emcc命令行运行方式 最近因为项目原因#xff0c;研究了一下WebAss… 文章目录 开发环境安装opencv环境 实践出真知完整项目效果图 踩坑fatal error: opencv2/opencv.hpp file not found增加软链ln无效改用自行安装opencv再显示指定lib路径 emcc命令行运行方式 最近因为项目原因研究了一下WebAssembly。2015年上线与JS、HTML、CSS并称web界四语言额虽然已经上线快10年但是研究的人好少注定这个探索之路是崎岖的。事实也是这样已经耗进去快2周了人都麻了-_-|| 这是一个曲折的探索之路emcc编译opencv的代码真的问题好多。。。 开发环境
为啥要把开发环境放在第一位呢这里面也是采了无数的坑。
开发工具版本Ubuntu18.04emscripten3.1.55cmake3.28.3opencv3.2.0
安装opencv环境
安装
sudo apt-get update
sudo apt-get install libopencv-dev查看opencv的lib目录
dpkg -L libopencv-dev配置环境变量
export LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu
export PKG_CONFIG_PATH/usr/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
source ~/.bashrc实践出真知
完整项目
项目结构如下
┌─demo 项目名称
│─build 编译文件(emcmake和emmake后的产物)
│ └─CMakeFile
│ │ └─...
│ └─cmake_install.cmake
│ └─CMakeCache.txt
│ └─Makefile
│ └─helloCV.js
│ └─helloCV.wasm
├─main.cpp 主入口
├─CMakeLists.txt main.cpp
#include opencv2/opencv.hpp
#include stdio.h
using namespace cv;
int main(int argc, char **argv) {Mat M(2, 2, CV_8UC3, Scalar(0, 0, 255));std::cout M std::endl M std::endl;return 0;
}CMakeLists.txt
cmake_minimum_required( VERSION 3.8 )
set( CMAKE_CXX_STANDARD 17 )
project( helloCV )# Needed for opencv2/opencv.hpp
include_directories( /root/wasm/opencv-demo/opencv/include )# Needed by opencv.hpp for opencv2/opencv_modules.hpp
include_directories( /root/wasm/opencv-demo/opencv/platforms/js/build_wasm )# Needed by opencv_modules.hpp for every module
file( GLOB opencv_include_modules /root/wasm/opencv-demo/opencv/modules/*/include )
include_directories( ${opencv_include_modules} )# Our hello world executable
add_executable( helloCV main.cpp )set(CMAKE_EXECUTABLE_SUFFIX .html) # 编译生成.html# Link to opencv.js precompiled libraries
file( GLOB opencv_js /root/wasm/opencv-demo/opencv/platforms/js/build_wasm/lib/*.a )
target_link_libraries( helloCV ${opencv_js} )执行cmake
//在项目根目录下执行如下命令
mkdir build
cd build
emcmake cmake ..
emmake make 效果图
将helloCV.html、helloCV.js和helloCV.wasm三个文件下载下来在vscode中使用preview on web server插件运行如下图
踩坑
fatal error: ‘opencv2/opencv.hpp’ file not found
刚开始使用apt-get安装opencv库并且用emcc命令行执行编译但疯狂报错查阅大量资料有人说emcc只能引用静态库动态库会报错
增加软链ln无效
make-opencv2-opencv-hpp-not-found sudo ln -s /usr/share/OpenCV /usr/include/opencv2 改用自行安装opencv再显示指定lib路径
How to use emscripten with cmake for project dependencies? stackoverflow真的有太多的宝藏在里面帖子里找到了解决方案
emcc命令行运行方式 问题很多无法吐槽只能避开如果依赖的第三方库太多强烈建议不要使用此方式不然-l 写的想吐。。。