使用emcc将C++代码编译为Wasm时出现问题

问题描述 投票:0回答:1

我正在尝试将 C++ 代码编译为 Wasm,但遇到了问题。我的 C++ 代码包含 dlib 和 OpenCV 库。 我已经成功编译了 C++ 环境的 OpenCV 和 dlib。另外,我已经在我的系统中安装了emscripten。

目录结构为

C 驱动器

|..

|-- dlib

|-- emsdk

|--opencv

|-- cpp_project

现在,当我在命令提示符下的 cpp_project 目录中(以管理模式打开)时,我正在执行以下命令。

emcc -msse3 -msimd128 -std=c++11 -O3 -I ../dlib ../opencv/build/include/opencv2/core.hpp ../dlib/dlib/all/source.cpp -lstdc++ -lpthread -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=4 -s TOTAL_MEMORY=1024MB -s "EXTRA_EXPORTED_RUNTIME_METHODS=['ccall', 'cwrap']" -s WASM=1 -o main.js

我收到以下错误:

../opencv/build/include/opencv2/core.hpp:52:10:致命错误:找不到“opencv2/core/cvdef.h”文件

#include“opencv2/core/cvdef.h” ^~~~~~~~~~~~~~~~~~~~~~ 生成 1 个错误。

请帮助我。

c++ windows opencv dlib webassembly
1个回答
4
投票

您必须将

-I ../dlib ../opencv/build/include/opencv2/core.hpp
更改为
-I ../dlib -I ../opencv/build/include

© www.soinside.com 2019 - 2024. All rights reserved.