涉及 openCV 的 Visual C++ 应用程序部署:需要适当的指南
Visual C++ application deployment that involves openCV: Proper Guideine needed
我在 Visual Studio IDE(VS 2015 Enterprise) 上使用 Visual C++ 编写了大量代码。我的应用程序严重依赖 openCV(x64-vc14)。它 运行 在我的电脑上非常完美。但是当我尝试使用 install shield limited(在调试构建模式下)部署到另一台计算机时,它显示 .exe 文件依赖于许多 .dll 文件。我浏览了 google,找到了依赖 walker,但是当我 运行 dependency walker 时,它给出了一个包含数千个 .dll 文件的依赖列表。从我的计算机复制每个 dll 文件并将其添加到应用程序目录中的手动过程非常耗时。还有其他更好的方法可以自动执行此操作吗?在构建过程中或项目 属性 设置中,我是否遗漏了什么?我需要一个指南,因为将来我的应用程序会更大,并且可能还会依赖更多的 dll 文件。
你不应该部署调试版本,它们依赖于 CRT 的调试版本并且不打算重新分发(或者你甚至不允许,我不知道,不是律师).
而是构建发布版本并在目标机器上安装 'Visual C++ Redistributable Packages for Visual Studio 2015' - Installshield 应该将其作为先决条件。对于 OpenCV,您必须指示 Installshield 获取所需的所有 dll。要么手动,要么让它扫描依赖项(尽管 afaik 然后它可能包含比需要的更多的方式)。
我在 Visual Studio IDE(VS 2015 Enterprise) 上使用 Visual C++ 编写了大量代码。我的应用程序严重依赖 openCV(x64-vc14)。它 运行 在我的电脑上非常完美。但是当我尝试使用 install shield limited(在调试构建模式下)部署到另一台计算机时,它显示 .exe 文件依赖于许多 .dll 文件。我浏览了 google,找到了依赖 walker,但是当我 运行 dependency walker 时,它给出了一个包含数千个 .dll 文件的依赖列表。从我的计算机复制每个 dll 文件并将其添加到应用程序目录中的手动过程非常耗时。还有其他更好的方法可以自动执行此操作吗?在构建过程中或项目 属性 设置中,我是否遗漏了什么?我需要一个指南,因为将来我的应用程序会更大,并且可能还会依赖更多的 dll 文件。
你不应该部署调试版本,它们依赖于 CRT 的调试版本并且不打算重新分发(或者你甚至不允许,我不知道,不是律师). 而是构建发布版本并在目标机器上安装 'Visual C++ Redistributable Packages for Visual Studio 2015' - Installshield 应该将其作为先决条件。对于 OpenCV,您必须指示 Installshield 获取所需的所有 dll。要么手动,要么让它扫描依赖项(尽管 afaik 然后它可能包含比需要的更多的方式)。