与静态运行时,仍然得到缺少DLL错误MSVC17链接申请

时间:2019-02-02 11:19:20

标签: visual-studio static-linking msvcrt

我设置了/ MT标志,以使我的c ++应用程序与C运行时静态链接,因此我不必担心重新分配运行时,但是,启动时,我会收到一条错误消息,提示您缺少“ Api-ms-win- core-version-l1-1-0.dll”。如何编译我的应用程序,使其完全独立于任何运行时等?

构建环境:MSVC 2017,Windows 10 SDK 编译和测试机器:64位Windows 7

1 个答案:

答案 0 :(得分:0)

所选答案here帮助我解决了问题。简而言之,您不能与任何 api-ms-win-core * 库链接,而应与msdn中为API列出的相应库链接。 api-ms-win-core * 库由OS间接使用,这就是为什么它们会丢失的原因-实际上需要链接适当的Windows .lib。

在我的情况下,我使用depends来确定缺少哪些API库,然后在msdn中查找适当的.lib文件,并在“其他依赖项”中添加这些文件。问题解决了。

仅供参考,/ MT标志正在按预期运行,我不必重新分配c运行时等。