我面临一个奇怪的问题。使用cmake-3.24.2,我在发布模式下用c++20构建了一个windows应用程序(windows10(。(Visual Studio 2019,x64(应用程序在其生成的计算机上运行良好。
在另一台windows计算机上部署同一应用程序时,它无法开始显示有关缺少ucrtbased.dll(以及随后的vcrt调试dll(的错误。我真的很困惑为什么一个发布版本要找一个调试dll。我使用依赖项资源管理器查看应用程序是否链接到任何调试dll,但我找不到任何。
谷歌搜索显示ucrtbased.dll是windowssdk的一部分。目标计算机上未安装windows sdk。是运行应用程序所需的windowssdk(我认为vcruntime就足够了(。
同样,如果我使用c++17标准并部署在目标机器上,同样的代码也可以正常工作。我想知道c++20是否缺少什么。
这里提到了解决方案。在我的可执行文件所依赖的每个dll上运行dumpbin,并找出罪魁祸首