Dav*_*nal 9 c++ deployment mfc opencv visual-studio-2015
我正在使用C++,OpenCV和Visual Studio在使用Computer Vision构建应用程序的项目中工作.我不是在部署程序以在其他PC上使用它们的专家.
我已经制作了一个程序,我需要分发给一定数量的人,我不能让它在我想要的所有计算机上运行.该程序是使用Visual Studio 2015编写的,它是一个MFC项目,代码是用C++编写的,因为我使用的是OpenCV.
当它完成后,我试图在另一台计算机上运行它,我意识到它将无法打开.我查看了互联网,发现我需要静态链接库,所以我做到了.此外,当我在寻找信息时,我发现Visual Studio 2015构建了它的项目,因此您可以在Win7到Win10的机器上运行程序.当我了解到这一点时,我试图在运行Windows 7,8,8.1和10的PC上打开它.我在20台计算机上测试了我的程序,给予或接受.
结果?我无法使其适用于Windows 7,每次我尝试打开它时出现错误ucrtbase.terminate api-ms-win-crt-runtime-l1-1-0.dll.它也没有在一台机器的Windows 8没有显示任何错误信息打开,但它的DID开上大多数的机器与Win 8.1和Win 10的事情是," 大多数 "; 有一些PC(Win 8.1和10)我无法打开我的程序.我发现有时它会在任务管理器中显示不到一秒钟然后消失.最紧张的是它没有告诉我问题是什么,它没有显示任何错误信息.它只是不会打开.
我尝试使用Dependency Walker(我的PC和其中一个我无法运行我的程序)查看是否有遗漏的东西,我得到了一个系统无法找到的文件列表,这里是一个例子: 列表1/11.好奇的是我的程序在我的计算机和我可以打开的程序上执行得很好,即使Dependency Walker(DW)告诉我它可能存在问题.这表明DW没有找到我所拥有的确切错误.
我尝试过的另一件事是比较我在计算机上安装的东西,并将它们安装在我想要执行程序的程序上.我尝试安装.NET Framework 4.6.1只是因为VS 2015说我的项目是使用它构建的(我将它安装在我的PC上,而另一个则不是.我也尝试使用.NET 4.6.1 SDK).没有改变.
看看这里:
https://msdn.microsoft.com/de-de/library/ms235299.aspx
快速而肮脏的方法是从 redist 目录中复制 DLL。对于我的 MS VS 2013,它隐藏在 VS 安装目录下:
VC\redist\x86
Run Code Online (Sandbox Code Playgroud)
或者
VC\redist\x64
...
Run Code Online (Sandbox Code Playgroud)
这取决于您的应用程序。
| 归档时间: |
|
| 查看次数: |
1146 次 |
| 最近记录: |