因此,在Visual Studio 2013中,我创建了一个使用OpenCV的程序。 但是当我想编译程序时,会出现MSVCP100D.dll丢失的错误。我在Debug版本中编译它,我不想在Release版本中编译程序,所以我需要这个文件。
我尝试安装 Microsoft Visual C ++ 2010 Redistributable Package ,但它已经在我的计算机上。 我应该下载单个文件(MSVCP100D.dll)并将其粘贴到C:\ windows \ system32 \?因为我可以找到MSVCP100.dll文件,但不能找到MSVCP100D.dll文件。
我也阅读了有关此问题的相关问题,但没有帮助。
编辑:现在MSVCP110D.dll也丢失了。同样的错误,但现在是MSVCP110D.dll文件。
答案 0 :(得分:3)
您在Visual Studio 2010中编译了一些代码。重新编译Visual Studio 2013中的代码以消除MSVCP100D.dll依赖关系(将其替换为MSVCP120D.dll)。
答案 1 :(得分:0)
解决方案(适合我):在Visual Studio项目属性中,在链接器>常规>其他库目录下,使用$(OPENCV_DIR)\ x64 \ vc12 \ lib (对于您的系统,这可能会根据您使用的是x86还是x64版本而改变)。然后你的程序应该运行。至少它对我有用:)
说明:我在相同版本的OpenCV和VS中遇到了同样的问题。经过大量研究后,我发现问题可能 OpenCV的预构建二进制文件与Visual Studio 2013的不兼容性。
@Sheng Jiang的回答帮助了我。我使用dependency walker并发现 opencv_core2410d.dll依赖于MSVCP100D.dll ,因为我使用的opencv库是使用Visual Studio 2010(放在vc10文件夹中)编译的,并且MSVCP100D.dll是关联的使用Visual Studio 2010。一种选择是使用Visual Studio 2013重新编译OpenCV代码(正如盛江上面的答案所示)。但这是不必要的,因为OpenCV 2.4.10已经提供了使用Visual Studio 2013构建的预构建库。这些预构建的库位于C:\ opencv \ build \ x64 \ vc12文件夹中(确切路径可能因机器而异)。
importance of vc10, vc11 and vc12 libraries来了。您选择与您正在使用的Visual Studio版本对应的文件夹。我的错误是选择vc10而不是vc12。