【问题标题】:Making visual studio projects portable, problem使视觉工作室项目可移植,问题
【发布时间】:2019-04-14 17:20:14
【问题描述】:

我有问题。

无论我在哪里尝试在另一台计算机上运行 c++ 程序(内置于 Visual Studios 2017 社区版),它都会说缺少三个 dll:vcredist、MSVCP140D 和 ucrtbased.dll。我发现的唯一解决方案是在另一台计算机上安装 Visual Studios 社区。

我的问题是:您如何创建一个不会在另一台计算机上不断要求这些 dll 的程序?我该如何解决这个问题?

感谢您的宝贵时间和您提供的任何帮助。

亲切的问候, 约翰

【问题讨论】:

  • MSVCP140D.dll 和 ucrtbased.dll 是调试版本。而且您绝对不应该重新分发您的应用程序的调试版本,而是发布。但即使使用 Release 版本,您通常也需要为 Visual Studio(您的版本)部署 Microsoft Visual C++ Redistributable,然后才能运行您的应用程序。

标签: c++ visual-studio build portable-executable


【解决方案1】:

您正在处理的问题与您分发应用程序的方式以及链接它所依赖的库的方式有关。

您的应用程序链接到您提到的 DLL动态。这意味着您需要将这些库作为单独的文件与您的应用程序一起包含,或者让用户将它们单独安装在目标机器上。

但是,您可以通过静态链接将它们编译到应用程序中。 Microsoft 不鼓励这种做法,原因可能与整体系统性能和内存管理有关。

查看此Microsoft article,了解有关此区别的更多信息,因为它与 Windows 应用程序开发特别相关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    相关资源
    最近更新 更多