c++ - VS 2015 C++ Redistributable 不在单个 DLL 中?

标签 c++ visual-studio visual-studio-2015 runtime

假设我使用 Visual Studio 2015 将以下 C++ 代码构建到 HelloWorld.exe 中,目标版本为 x64 平台。

#include <iostream>

int main()
{
    std::cout << "Hello world!!" << std::endl;
    return 0;
}

几年前,我可以简单地复制 msvcp###.dll(或 C 的 msvcr###.dll)和 HellowWorld.exe 并有一个可运行的程序。

我刚刚安装了VS2015,现在看来不能只带msvcp140.dll了。我的 System32 文件夹中似乎有 70 ~ish api-ms-win-.....dll 文件需要随附。

我知道最好的策略是让他们安装可再发行组件...但在他们不能安装的情况下,复制 .DLL 曾经是一个可行的替代方案。现在还是这样吗?我是不是漏掉了一些简单的东西?

总结一下:我原以为我可以只复制 msvcp140.dll 让它工作,但事实似乎并非如此。我错了吗?

注意:我在 list of things you are allowed to redistribute 中没有看到 api-ms-....dll 文件.或者它是否理解这是 2015 运行时的一部分并且随之而来?

最佳答案

我倾向于静态链接运行时(/MT 和/MTd 编译器选项),而不是安装可再发行组件。

它确实会导致文件变大,但比目前发布的 DLL 小。

关于c++ - VS 2015 C++ Redistributable 不在单个 DLL 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37869380/

相关文章:

git - Visual Studio 2017 本地 Git Repo 路径不正确

c# - 条件断点在 Visual Studio 2015 中不起作用

c++ - 解决 lambda 表中的 VS2010 错误?

c++ - 使用跨步时出现noalias()问题

c++ - 如何检测我的应用程序在 Qt 中失去焦点?

visual-studio-2015 - 更新 Visual Studio 2015 扩展最终被禁用

c# - 报告模板在 Visual Studio 2015 C# 中不可用

c++ - 在另一个程序中启动一个程序

visual-studio - Visual Studio - 如何找到堆损坏错误的来源

git - 更改 Visual Studio Team Explorer 的 GIT 帐户