使用VS2015为Vista编译C ++

时间:2015-11-08 06:35:17

标签: c++ visual-studio-2015 windows-vista redistributable

几天前,我在微软论坛的标题中提出了这个问题。 我有两个选择,恕我直言不是很好:

  1. 在目标计算机上安装VS2015可再发行组件。
  2. 静态编译,以便代码不会调用VS2015 DLL文件。
  3. 第一个选项大大增加了我的应用程序的安装时间。

    第二个选项显着增加了二进制文件的大小,增加了构建时间,并且在使用flag / CLR进行编译时不适用。

    现在看来,通过将我的开发工作转移到Visual Studio 2015,我不得不放弃对Vista的支持(实际上,也支持Windows 7)或提供比我之前提供的产品更差的产品。

    注意:我跳过使用平台工具集= v140_xp 将解决问题,但显然它不会。

    请以更好的解决方案启发我。

1 个答案:

答案 0 :(得分:2)

VS2015的情况有所改变。本文介绍了您需要执行的操作:http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx

简而言之,Universal CRT现在是一个Windows组件。它随Windows 10一起提供,并在早期版本上通过Windows更新提供。你的选择:

  1. 依靠Windows更新包。
  2. 应用运行时可再发行组件。
  3. 静态链接,强烈建议不要这样做。
  4. 部署应用程序本地安装运行时所需的二进制文件。
  5. 此最终选项与您当前的选项相匹配。文章说:

      

    支持通用CRT的应用程序本地部署。要获取应用程序本地部署的二进制文件,请安装Windows 10的Windows软件开发工具包(SDK)。二进制文件将安装到C:\ Program Files(x86)\ Windows Kits \ 10 \ Redist \ ucrt。您需要使用您的应用程序复制所有DLL(请注意,在不同版本的Windows上,所需的DLL集是不同的,因此您必须包含所有DLL,以便您的程序在所有受支持的Windows版本上运行)。