mediapipe icon indicating copy to clipboard operation
mediapipe copied to clipboard

When compiling under Windows, the following error occurs

Open dannisliang opened this issue 6 months ago • 3 comments

OS Platform and Distribution

windows 10

Compiler version

bazel-7.6.1,vc2022

Programming Language and version

c++

Installed using virtualenv? pip? Conda?(if python)

python-3.12.10

MediaPipe version

MediaPipe v0.10.24

Bazel version

No response

XCode and Tulsi versions (if iOS)

No response

Android SDK and NDK versions (if android)

No response

Android AAR (if android)

None

OpenCV version (if running on desktop)

OpenCV 3.4.10

Describe the problem

When compiling under Windows, the following error occurs, likely due to using OpenCV 3.4.10 for compilation

Complete Logs

mediapipe/calculators/video/opencv_video_decoder_calculator.cc(116): error C2039: "CAP_PROP_ORIENTATION_AUTO": is not a member of "cv"
external/windows_opencv/include\opencv2/videoio.hpp(71): note: see declaration of "cv"
mediapipe/calculators/video/opencv_video_decoder_calculator.cc(116): error C2065: CAP_PROP_ORIENTATION_AUTO: undeclared identifier

dannisliang avatar May 22 '25 02:05 dannisliang

Hi @dannisliang,

Can you please share the exact instructions or commands you are following from our documentation here?

Also, can you confirm whether you are using Bazel 7.6.1? This version is not currently supported. The supported version is Bazel 6.5.0, as specified here.

Additionally, were you able to successfully build the Hello World example from the same documentation?

Please provide the complete error log you’re encountering so we can assist further.

Thank you!!

kuaashish avatar May 22 '25 04:05 kuaashish

This is unrelated to issue (#5975). After changing the Bazel version to 6.5.0, the issue (#5975) seems to no longer occur. However, the following errors still persist: ERROR: C:/users/_bazel_admin/vrlotbeo/external/XNNPACK/BUILD.bazel:669:36: Compiling src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c failed: (Exit 2): cl.exe failed: error executing command (from target @XNNPACK//:avxvnniint8_prod_microkernels) D:\program files\Microsoft Visual Studio\2022\Enterprise\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\cl.exe /nologo /DCOMPILER_MSVC /DNOMINMAX /D_WIN32_WINNT=0x0601 /D_CRT_SECURE_NO_DEPRECATE ... (remaining 80 arguments skipped) qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(132): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(133): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(134): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(135): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(136): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(137): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(138): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(139): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(140): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(141): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(143): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(144): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(145): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(146): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(147): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(148): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(149): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(150): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(151): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(152): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(173): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(174): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(175): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(176): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(177): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(178): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(179): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(180): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(181): error C2440: “=”: 无法从“int”转换为“__m256i” external/XNNPACK/src/qs8-qc8w-igemm/gen/qs8-qc8w-igemm-5x8c8-minmax-fp32-avxvnniint8-prfm.c(182): error C2440: “=”: 无法从“int”转换为“__m256i” Target //mcl:mcl failed to build Use --verbose_failures to see the command lines of failed build steps. INFO: Elapsed time: 251.231s, Critical Path: 55.57s INFO: 1171 processes: 1057 internal, 114 local. FAILED: Build did NOT complete successfully Error building library...!!!

dannisliang avatar May 22 '25 08:05 dannisliang

I'm trying to solve this issue, and I realized the _mm256_dpbusd_avx_epi32 function is not enabled. and It seems to be an issue with XNNPACK itself.

I updated XNNPACK to the latest commit, but another error occured in a different module.

C:\users\me\_bazel_me\kwqutj5l\execroot\mediapipe\external\pthreadpool\src\threadpool-atomics.h(14): fatal error C1083: Cannot open include file: 'stdatomic.h': No such file or directory

it seems the Mediapipe project does not check the Windows build.

karikera avatar Jun 06 '25 07:06 karikera

The root cause of the original error is the wrong OpenCV version specified in the documentation. Here is the issue with explanation: https://github.com/google-ai-edge/mediapipe/issues/5876. I prepared the documentation fix, which has been awaiting code review for months: https://github.com/google-ai-edge/mediapipe/pull/5877.

definability avatar Jul 16 '25 06:07 definability