【发布时间】:2018-06-01 18:45:19
【问题描述】:
我使用 Visual Studio 模板创建了简单的 Windows 运行时组件。默认情况下,项目通过 MD/MDd 选项动态链接到 C/C++ 运行时库。
当我将其更改为 MT/MTd(项目属性 -> C/C++ -> 代码生成 -> 运行时库)并构建项目时出现错误
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets(1693,5):错误 MSB8024:使用 C++ 的静态版本不支持运行时库。
如何使用 MTd 选项编译 Windows 运行时组件? 我需要这个,因为 WinRT 组件将引用其他使用静态链接 C++ 运行时库构建的第 3 部分库。
【问题讨论】:
-
错误信息非常明确,没有可以按下的魔法按钮使其消失。必须重建库以匹配编译器版本和设置是完全正常的。如果不是您的,请要求所有者进行重建。请记住,这样的库不太可能在 UWP 应用程序中运行,因此必须使用 WACK 对其进行验证。
-
解决方案是请求第 3 方库的版本,该版本动态链接到您在组件中使用的同一 CRT。
标签: c++ uwp windows-runtime windows-10 visual-studio-2017