由于找不到MSVCP120D.dll,无法继续执行代码。重新安装程序可能会解决此问题
一、问题详细描述
同样可能会报
(1)由于找不到MSVCP120.dll,无法继续执行代码。重新安装程序可能会解决此问题
(2)由于找不到MSVCR120.dll,无法继续执行代码。重新安装程序可能会解决此问题
(3)由于找不到MSVCR120D.dll,无法继续执行代码。重新安装程序可能会解决此问题
二、问题产生背景
vs2013项目放在vs2022上跑。
三、问题原因
msvcp120.dll这个组件是Microsoft Visual C++ Redistributable Packages的一部分,它包含了方便进行C及C++编程的各种库,如C运行时库(CRT),标准C++,MFC,C++ AMP和OpenMP等,它们为那些使用Visual Studio 2013编写的应用程序提供了必要的运行环境。在vs2013中,其对应的版本是120,在vs2015中,其对应的版本为140。较老的opencv在vs2013中编写程序,使用了该库。如果换了vs的版本,没有该库,将会报错。
四、解决办法
1、安装缺少的库
下载该库(下载链接),放到C:\Windows\System32文件夹下。
也可以放到opencv的bin文件夹下。
也可以使用Visual C++ Redistributable Packages for Visual Studio 2013包进行安装。
2、直接更换更高版本的opencv
如果非必须使用旧版本的opencv,直接将opencv版本换到vs2022支持的最新版本。
比如opencv3.0.0,下载后,其编译好的build中,有vc11和vc12,vc11对应vs2012,vc12对应vs2013。
opencv4.9.0中,其中vc16,对应vs2019,在vs2022中,使用opencv4.9.0将不会再使用该库。
这里的版本对应不是绝对对应的,vs2022中可以使用opencv3.0.0,同样的vs2013中,也可以使用opencv4.9.0。
五、vs版本对应vc
我们下载好opencv后,build中已经编好相应vc的库,一般来说,其对应vc版本的库最佳,我们也可以使用Cmake重新编译其他vc版本的库。获得vc版本之后,查看其对应的vs。
1、版本对应
2、vs对应vc查看方法
打开vs项目,帮助》About Microsoft Visual Studio