vs2015+OpenVINO报错解决:MKLDNNPlugind.dll,MKLDNNPlugind.dll

使用OpenVINO时,报出以下错误:

Failed to create plugin xxx\intel64\Debug\MKLDNNPlugind.dll for device CPU

Please, check your environment

Cannot load library 'xxx\intel64\Debug\MKLDNNPlugind.dll':

折腾过卸载vs2015,重装vs2017,卸载重装OpenVINO,瞎折腾一番,都没有解决问题。。。原因不在这里。看下面。。。

 

新建一个vs工程,把openvino配置进去进行测试,如进行人体骨骼检测。

1)配置属性文件

Release:

附加包含目录:【注意配置自己的路径】

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\pose_estimation\include

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\common

C:\Program Files (x86)\IntelSWTools\openvino\opencv\include

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\inference_engine\include

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\common\monitors

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\thirdparty\gflags\include

附加依赖项:【注意配置自己的路径】

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_highgui420.lib

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_c_api.lib

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\inference_engine\lib\intel64\Release\inference_engine_nn_builder.lib

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\inference_engine\lib\intel64\Release\inference_engine.lib

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\thirdparty\gflags\lib\Release\monitors.lib

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\thirdparty\gflags\lib\Release\gflags_nothreads_static.lib

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_videoio420.lib

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_imgcodecs420.lib

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_imgproc420.lib

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_core420.lib

pdh.lib

shlwapi.lib

 

Debug:【注意配置自己的路径】

附加包含目录:

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\pose_estimation\include

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\common

C:\Program Files (x86)\IntelSWTools\openvino\opencv\include

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\inference_engine\include

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\common\monitors

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\thirdparty\gflags\include

附加依赖项:【注意配置自己的路径】

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_highgui420d.lib

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\inference_engine\lib\intel64\Debug\inference_engine_c_apid.lib

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\inference_engine\lib\intel64\Debug\inference_engine_nn_builderd.lib

C:\Program Files (x86)\IntelSWTools\openvino_2020.1.033\deployment_tools\inference_engine\lib\intel64\Debug\inference_engined.lib

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\thirdparty\gflags\lib\Debug\monitors.lib

E:\6.ActionRecognition\HumanSkeleton\code\c++\lightweight_openpose\openvino\pose_estimation\thirdparty\gflags\lib\Debug\gflags_nothreads_static.lib

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_videoio420d.lib

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_imgcodecs420d.lib

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_imgproc420d.lib

C:\Program Files (x86)\IntelSWTools\openvino\opencv\lib\opencv_core420d.lib

pdh.lib

shlwapi.lib

2)报错:

在属性,c/c++,预处理器中添加:_CRT_SECURE_NO_WARNINGS

3)在属性,c/c++,常规,SDL检查,选择为:否。

4)报错:

当前工程只支持Unicode字符,不支持多字节,此时如果代码中出现多字节字符串, 就会报错。LoadLibrary 函数有两个版本,一个LoadLibraryW 针对Unicode版的,一个是LoadLibraryA 针对Multi-Byte(多字节)版的,它们通过不同的宏定义区分开,根据定义的宏会使用不同的函数版本。当使用UNICODE字符,就等于预设了_UNICODE、UNICODE宏,所以编译时就会使用LoadLibraryW。

解决:属性->配置属性-->常规--->字符集---->使用多字节符字符集。

5)编译成功,Debug下可正确运行,release下报错:

无法定位程序输入点,@tbb@YAXPEAH@Z于动态链接库:xxx/Release\MKLDNNPlugin.dll上【这个错其实和开头所写的是一致的,还是环境变量的问题】。

解决方法:

a)点击左下角win键,点击“所有应用”,打开VStudio command prompt("x86 Native Tools Command Prompt for vs2017",测试发现使用下面红框中的几个均可以,vs2015也没问题)

b)进入目录:cd C:\Program Files (x86)\IntelSWTools\openvino\bin\

执行:setupvars.bat【一定要有这步,不然还是报相同的错】

注意,查看setupvars.bat中的是Debug还是Release,这里不需要修改,Debug与Release的路径都有。

c)运行:devenv /UseEnv

打开vs界面,然后打开上面的工程。

这样操作会使用setupvars.bat中的环境变量启动Visual Studio,然后配置参数运行,完美结果。

系统自带的cmd就是运行cmd.exe

vs的开人人员工具命令行则会初始化很多环境变量,比如可以方便的找到编译器,连接器和include,lib的地址等等。

发布了204 篇原创文章 · 获赞 116 · 访问量 38万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览