admin管理员组文章数量:1122847
研究了下,搞懂原理了。是VS 2015 编译的问题,因为我是Win 10 ,所以会用到win 10 的SDK ,这个SDK 依赖了Universal C Runtime ,就是API-MS-CRT-XXX.dll系列,这个玩意儿是为了让在Win 10 上用VS 2015 编译出来的东西在早期Win 上运行完美的组件,所以dependency walker依赖那里有个DLL 的转发。所以为啥我以前用VS 2012 在Win 10 开发,放Win 7上完美运行,而VS 2015 就不行,放Win 7 上就挂了。
其实VS2015 的Visual C++ Redistributable for Visual Studio 2015里面就包含了Universal C CRT。但是在非Win7 SP1上会安装失败,这是没办法的。
所以解决办法有以下:
1.换低版本的VS2013来编译项目
2.还是继续用VS2015,不过运行时库得用静态链接,也就是说,你所有第三方用的依赖库,都得重新用VS2015的运行时静态连接编译一遍,如果你用Qt,得了,Qt不提供静态库版本,得自己重新用VS2015编。
references:
https://www.zhihu/question/47973373
http://www.mamicode/info-detail-1488335.html
https://www.smartftp/support/kb/the-program-cant-start-because-api-ms-win-crt-runtime-l1-1-0dll-is-missing-f2702.html
https://support.microsoft/en-us/help/2999226/update-for-universal-c-runtime-in-windows
https://social.msdn.microsoft/Forums/en-US/96a1451b-ae6a-4c81-8029-dc00ab6a8d4a/the-program-cant-start-because-apimswincrtruntimel110dll-is-missing-from-your-computer?forum=vcgeneral
版权声明:本文标题:VS2015在win10上编译的程序不能在Win7上运行的原因 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1727787004a1299881.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论