我对所有这些 SDK Windows 版本有点迷茫。
例如,我在 windows8.1 上安装了 vs2013,我(还)需要将我的应用程序链接到 vs2008 运行时(平台工具集)。
我应该安装整个 VS2008 还是只安装 API。在最后一种情况下,我必须安装什么 SDK?
最佳答案
你在谈论两个截然不同的事情。 Windows SDK 仅涵盖进行 winapi 调用所需的声明和库。 SDK v8.1 适用于自 Vista 以来的任何现代 Windows 版本,您可以通过设置 _WIN32_WINNT 宏来选择要定位的 Windows 版本。请注意,XP 需要较旧的 SDK 版本,v7.1 是最后一个仍然适用的版本,您可以通过将平台工具集设置为 v120_xp 来选择它。
运行时库是 Visual Studio C/C++ 项目的纯实现细节,与 SDK 完全无关。当您使用/MD 编译选项在 VS2013 上构建此类程序时,它将依赖于 msvcr120.dll,可能是 msvcp120.dll 和其他。这些 DLL 实现了 C 运行时库和 C++ 标准类。如果您使用这些库,可能还有 MFC、ATL、OpenMP 和 AMP。
如果您仍然依赖于这些库的 VS2008 版本,那么您可能会遇到一个非常大的问题。您可以从可从 Microsoft 下载的 redist 安装程序中获取这些 DLL 的发行版本。依赖于调试版本需要在您的机器上安装 VS2008。但是,由于新的 C++11 语言标准,VS2008 和 VS2013 之间的运行时库发生了很大变化,因此在运行时链接程序和苦难时遇到了麻烦。在一个程序中使用多个 CRT 通常会造成很多麻烦。
您需要大力追求重建仍然具有 VS2008 依赖项的库。如有必要,请联系图书馆的所有者以获取更新。
关于windows - SDK windows丛林,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19465019/