首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >emmake命令用于openCV时会出错

emmake命令用于openCV时会出错
EN

Stack Overflow用户
提问于 2021-04-25 09:24:41
回答 1查看 355关注 0票数 0

我试图在cpp中创建一个简单的应用程序,它使用openCV并将其编译为wasm。我遵循这些文档,试图生成静态库文件*.a和引用opencv库为.o文件的cpp文件。这就是我犯错误的地方。我执行了命令

  • cmake ./ -B./ -DBUILD_SHARED_LIBS=OFF -DCMAKE_OSX_ARCHITECTURES="x86_64“-DWITH_1394=OFF -DWITH_FFMPEG=OFF -DBUILD_TESTS=OFF静态地构建opencv到当前文件夹中。然后运行commands
  • make
  • sudo make

之后,我导航到cpp文件所在的位置,然后运行

  • cmake .

  • make

基于此,我得到了可执行文件。在这里一切都很顺利。但是,当我根据文档运行以下命令时,我得到了错误。

-DBUILD_TESTS=OFF

  • emcmake c./ -B./ -DBUILD_SHARED_LIBS=OFF -DCMAKE_OSX_ARCHITECTURES="x86_64“-DWITH_1394=OFF -DWITH_FFMPEG=OFF -DWITH_FFMPEG=OFF

  • 电子制造

错误就会发生。

制作:使目标gen的扫描依赖度为0%生成opencv.pc 0%已构建的目标gen扫描依赖项,在/Users/atul109/MyDocuments/work/new/emscripten_playground/opencv-3.4.14/3rdparty/ittnotify/src/ittnotify/ittnotify_static.c:59: /Users/atul109/MyDocuments/work/new/emscripten_playground/opencv-3.包含的文件中通知0%构建C对象opencv.pc4.14/3rdparty/ittnotify/src/ittnotify/ittnotify_config.h:376:12:错误:函数'TBB_machine_fetchadd4‘的隐式声明在C99 -Werror中无效,-隐式-函数-声明返回TBB_machine_fetchadd4(ptr,1) + 1L;^1生成的错误。错误:'/Users/atul109/MyDocuments/work/new/emscripten_playground/emsdk/upstream/bin/clang -target wasm32 32未知-emscripten -D__EMSCRIPTEN_PTHREADS=1 -DEMSCRIPTEN -fignore-exceptions -mllvm -组合器-全局-别名-分析=假-mllvm -enable-emscripten-sjlj -mllvm -禁用-lsr -D__EMSCRIPTEN_major=2 -D__EMSCRIPTEN_minor__=0 -D__EMSCRIPTEN_tiny__=17 -D_LIBCPP_ABI_VERSION=2 -Dunix -D__unix -D__--sysroot=/Users/atul109/MyDocuments/work/new/emscripten_playground/emsdk/upstream/emscripten/cache/sysroot - unix__ =隐式函数声明-Xclang -iwithsysroot/unix__/SDL -Xclang -iwithsysroot/unix__/compat -I/Users/atul109/MyDocuments/work/new/emscripten_playground/opencv-3.4.14/3rdparty/ittnotify/include -I/Users/atul109/MyDocuments/work/new/emscripten_playground/opencv-3.4.14/WasmBuild/3rdparty/ippicv/ippicv_lnx/icv/包括-I/Users/atul109/MyDocuments/work/new/emscripten_playground/opencv-3.4.14/WasmBuild/3rdparty/ippicv/ippicv_lnx/iw/include -I/Users/atul109/MyDocuments/work/new/emscripten_playground/opencv-3.4.14/WasmBuild -fsigned char -W -Wall -Werror=返回-type-Werror=非虚拟的dtor -Werror=address -Werror=序列-point -Wformat -Werror=格式-安全-w关乎-声明-Wsign原型-Winit-自助w指针-arith -Wshadow -w符号-promo -Wuninitialized -Wno-缺失-重写-Wno-删除-非虚拟-dtor-Wno-未命名-类型-模板-args-Wno-注释-Wno-被废弃的-enum-enum-转换-Wno-去推荐-anon-enum- -pthread -显示-选项-pthread -q未用过的参数-段-fdata- -fvisibility=hidden -fvisibility-inlines Wno-隐式-回落-Wno-undef -Wno-比较-O3 -DNDEBUG -DNDEBUG -fPIC -c -pthread/-O3-DNDEBUG-DNDEBUG-fPIC-c-pthread/atul109/MyDocuments/work/new/emscripten_playground/opencv-3.4.14/3rdparty/ittnotify/src/ittnotify/ittnotify_static.c -o CMakeFiles/ittnotify.dir/src/ittnotify/ittnotify_static.c.o‘failed (1) make2:* 3rdparty/ittnotify/CMakeFiles/ittnotify.dir/src/ittnotify/ittnotify_static.c.o错误1 make1:* 3rdparty/ittnotify/CMakeFiles/ittnotify.dir/all Error 2 make:* all Error 2 emmake: error:'make’failed (2)

据我所知,is通知正在导致错误。但不知怎么的,当我做正常的cmake和make的时候,感觉很好。它只为emcmake和emmake这样做。

/Users/atul109/MyDocuments/work/new/emscripten_playground/opencv-3.4.14/3rdparty/ittnotify/src/ittnotify/ittnotify_config.h:376:12:错误:函数'__TBB_machine_fetchadd4‘的隐式声明在C99 -Werror中无效,-W隐含-函数声明返回__TBB_machine_fetchadd4(ptr,1) + 1L;^1错误生成。

请帮帮忙。

EN

回答 1

Stack Overflow用户

发布于 2021-04-25 16:40:08

与其他编译器WRT对隐式函数声明相比,Emscripten稍微严格一些。

请参阅https://github.com/emscripten-core/emscripten/blob/4e35687f2dca1171eca0735820d4f7f5ac65f363/emcc.py#L837-L842

您可以将-Wno-error=implicit-function-declaration传递给编译器来覆盖它,只要您知道这会导致以后可能出现的签名不匹配。

理想情况下,您应该修复上游代码以避免隐式声明。但这并不总是一种选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67251768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档