Open Stoyan-I-A opened 3 months ago
Same issue when building face_mesh
C:\Dev\mediapipe_cpp>bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="C:\\Users\\choju\\AppData\\Local\\Programs\\Python\\Python311\\python.exe" mediapipe/examples/desktop/face_mesh:face_mesh_cpu --verbose_failures
INFO: Analyzed target //mediapipe/examples/desktop/face_mesh:face_mesh_cpu (0 packages loaded, 0 targets configured).
ERROR: C:/dev/mediapipe_cpp/mediapipe/examples/desktop/face_mesh/BUILD:28:10: Linking mediapipe/examples/desktop/face_mesh/face_mesh_cpu.exe failed: (Exit 1120): link.exe failed: error executing CppLink command (from target //mediapipe/examples/desktop/face_mesh:face_mesh_cpu)
cd /d C:/users/choju/_bazel_choju/4oh6ymff/execroot/_main
SET LIB=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\ATLMFC\lib\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\lib\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64
SET PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\\Extensions\Microsoft\IntelliCode\CLI;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\\x64;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\vs2019\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\devinit;C:\Program Files (x86)\Windows Kits\10\bin\10.0.19041.0\x64;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\\MSBuild\Current\Bin;C:\Windows\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\;;C:\Windows\system32;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\Llvm\x64\bin;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja
SET PWD=/proc/self/cwd
SET PYTHON_BIN_PATH=C:\\Users\\choju\\AppData\\Local\\Programs\\Python\\Python311\\python.exe
SET RUNFILES_MANIFEST_ONLY=1
SET TEMP=C:\Users\choju\AppData\Local\Temp
SET TMP=C:\Users\choju\AppData\Local\Temp
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\HostX64\x64\link.exe @bazel-out/x64_windows-opt/bin/mediapipe/examples/desktop/face_mesh/face_mesh_cpu.exe-0.params
# Configuration: 746d2bf6598b4d30b02225b11bf6909d74ba6578b05e01a2753168805d86bd13
# Execution platform: @@local_execution_config_platform//:platform
Creating library bazel-out\x64_windows-opt\bin\mediapipe\examples\desktop\face_mesh\face_mesh_cpu.lib and object bazel-out\x64_windows-opt\bin\mediapipe\examples\desktop\face_mesh\face_mesh_cpu.exp
LINK : warning LNK4217: symbol 'TfLiteXNNPackDelegateOptionsDefault' defined in 'xnnpack_delegate.lib(xnnpack_delegate.obj)' is imported by 'inference_calculator_cpu.lo.lib(inference_calculator_cpu.obj)' in function '"private: class absl::StatusOr<class std::unique_ptr<struct TfLiteDelegate,class std::function<void __cdecl(struct TfLiteDelegate *)> > > __cdecl mediapipe::api2::InferenceCalculatorCpuImpl::MaybeCreateDelegate(class mediapipe::CalculatorContext *)" (?MaybeCreateDelegate@InferenceCalculatorCpuImpl@api2@mediapipe@@AEAA?AV?$StatusOr@V?$unique_ptr@UTfLiteDelegate@@V?$function@$$A6AXPEAUTfLiteDelegate@@@Z@std@@@std@@@absl@@PEAVCalculatorContext@3@@Z)'
LINK : warning LNK4217: symbol 'TfLiteXNNPackDelegateCreate' defined in 'xnnpack_delegate.lib(xnnpack_delegate.obj)' is imported by 'inference_calculator_cpu.lo.lib(inference_calculator_cpu.obj)' in function '"private: class absl::StatusOr<class std::unique_ptr<struct TfLiteDelegate,class std::function<void __cdecl(struct TfLiteDelegate *)> > > __cdecl mediapipe::api2::InferenceCalculatorCpuImpl::MaybeCreateDelegate(class mediapipe::CalculatorContext *)" (?MaybeCreateDelegate@InferenceCalculatorCpuImpl@api2@mediapipe@@AEAA?AV?$StatusOr@V?$unique_ptr@UTfLiteDelegate@@V?$function@$$A6AXPEAUTfLiteDelegate@@@Z@std@@@std@@@absl@@PEAVCalculatorContext@3@@Z)'
LINK : warning LNK4217: symbol 'TfLiteXNNPackDelegateDelete' defined in 'xnnpack_delegate.lib(xnnpack_delegate.obj)' is imported by 'inference_calculator_cpu.lo.lib(inference_calculator_cpu.obj)' in function '"private: class absl::StatusOr<class std::unique_ptr<struct TfLiteDelegate,class std::function<void __cdecl(struct TfLiteDelegate *)> > > __cdecl mediapipe::api2::InferenceCalculatorCpuImpl::MaybeCreateDelegate(class mediapipe::CalculatorContext *)" (?MaybeCreateDelegate@InferenceCalculatorCpuImpl@api2@mediapipe@@AEAA?AV?$StatusOr@V?$unique_ptr@UTfLiteDelegate@@V?$function@$$A6AXPEAUTfLiteDelegate@@@Z@std@@@std@@@absl@@PEAVCalculatorContext@3@@Z)'
LINK : warning LNK4217: symbol 'TfLiteRegistrationExternalCreate' defined in 'registration_external.lo.lib(registration_external.obj)' is imported by 'op_resolver.lib(op_resolver.obj)' in function '"public: __cdecl mediapipe::OpResolver::OpResolver(void)" (??0OpResolver@mediapipe@@QEAA@XZ)'
LINK : warning LNK4217: symbol 'TfLiteRegistrationExternalSetInit' defined in 'registration_external.lo.lib(registration_external.obj)' is imported by 'op_resolver.lib(op_resolver.obj)' in function '"public: __cdecl mediapipe::OpResolver::OpResolver(void)" (??0OpResolver@mediapipe@@QEAA@XZ)'
LINK : warning LNK4217: symbol 'TfLiteRegistrationExternalSetFree' defined in 'registration_external.lo.lib(registration_external.obj)' is imported by 'op_resolver.lib(op_resolver.obj)' in function '"public: __cdecl mediapipe::OpResolver::OpResolver(void)" (??0OpResolver@mediapipe@@QEAA@XZ)'
LINK : warning LNK4217: symbol 'TfLiteRegistrationExternalSetPrepare' defined in 'registration_external.lo.lib(registration_external.obj)' is imported by 'op_resolver.lib(op_resolver.obj)' in function '"public: __cdecl mediapipe::OpResolver::OpResolver(void)" (??0OpResolver@mediapipe@@QEAA@XZ)'
LINK : warning LNK4217: symbol 'TfLiteRegistrationExternalSetInvoke' defined in 'registration_external.lo.lib(registration_external.obj)' is imported by 'op_resolver.lib(op_resolver.obj)' in function '"public: __cdecl mediapipe::OpResolver::OpResolver(void)" (??0OpResolver@mediapipe@@QEAA@XZ)'
op_resolver.lib(op_resolver.obj) : error LNK2019: unresolved external symbol __imp_TfLiteOpaqueContextReportError referenced in function "private: static enum TfLiteStatus __cdecl <lambda_cfab14606fe5cecdc70fbc1dd29e189c>::<lambda_invoker_cdecl>(struct TfLiteOpaqueContext *,struct TfLiteOpaqueNode *)" (?<lambda_invoker_cdecl>@<lambda_cfab14606fe5cecdc70fbc1dd29e189c>@@CA?AW4TfLiteStatus@@PEAUTfLiteOpaqueContext@@PEAUTfLiteOpaqueNode@@@Z)
bazel-out\x64_windows-opt\bin\mediapipe\examples\desktop\face_mesh\face_mesh_cpu.exe : fatal error LNK1120: 1 unresolved externals
Target //mediapipe/examples/desktop/face_mesh:face_mesh_cpu failed to build
INFO: Elapsed time: 1.100s, Critical Path: 0.86s
INFO: 2 processes: 2 internal.
ERROR: Build did NOT complete successfully```
For some reason the function body TfLiteOpaqueContextReportError
inside mediapipe_cpp\bazel-mediapipe_cpp\external\org_tensorflow\tensorflow\lite\core\c\c_api_opaque.cc
not built?
Same issue when building face_mesh
Indeed, I wasn't able to build any of the examples other than "Hello World".
Same issue when building face_mesh
Indeed, I wasn't able to build any of the examples other than "Hello World".
face_detection is buildable as is
@chojuahn You are right! I didn't try this one. I had to mess around with the files afterwards to launch the .exe but it does build indeed.
A workaround, comment out here
+++ b/mediapipe/util/tflite/op_resolver.cc
@@ -52,8 +52,8 @@ TfLiteRegistration* RegisterMaxPoolingWithArgmax2D() {
TfLiteOpaqueNode* node) -> TfLiteStatus { return kTfLiteOk; });
TfLiteRegistrationExternalSetInvoke(
r, [](TfLiteOpaqueContext* context, TfLiteOpaqueNode*) -> TfLiteStatus {
- TfLiteOpaqueContextReportError(
- context, "MaxPoolingWithArgmax2D is only available on the GPU.");
+ // TfLiteOpaqueContextReportError(
+ // context, "MaxPoolingWithArgmax2D is only available on the GPU.");
return kTfLiteError;
});
return r;```
This is also breaking MediaPipe's Python build for Windows. I am trying to track it down.
The offending commit is https://github.com/tensorflow/tensorflow/commit/d6e25b069d9ddf4111d7def74c145d118c6f4f81, though there doesn't seem to be an obvious problem with it.
OS Platform and Distribution
Windows 10
Compiler version
No response
Programming Language and version
C++ with MSVC 14.29.30133
Installed using virtualenv? pip? Conda?(if python)
No response
MediaPipe version
Cloned from the master branch
Bazel version
6.1.1
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)
3.4.10
Describe the problem
I followed the instructions to install the Mediapipe framework described here (including building the "Hello World" example). Then, I followed the instructions to build the "Hand Detection solution" using these instructions. The build failed due to a Linker error (see the output log).
Complete Logs