VS2015在win10上编译的程序不能在Win7上运行的原因
2017-02-09 20:00
871 查看
研究了下,搞懂原理了。是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.com/question/47973373 http://www.mamicode.com/info-detail-1488335.html https://www.smartftp.com/support/kb/the-program-cant-start-because-api-ms-win-crt-runtime-l1-1-0dll-is-missing-f2702.html https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows https://social.msdn.microsoft.com/Forums/en-US/96a1451b-ae6a-4c81-8029-dc00ab6a8d4a/the-program-cant-start-because-apimswincrtruntimel110dll-is-missing-from-your-computer?forum=vcgeneral
其实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.com/question/47973373 http://www.mamicode.com/info-detail-1488335.html https://www.smartftp.com/support/kb/the-program-cant-start-because-api-ms-win-crt-runtime-l1-1-0dll-is-missing-f2702.html https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows https://social.msdn.microsoft.com/Forums/en-US/96a1451b-ae6a-4c81-8029-dc00ab6a8d4a/the-program-cant-start-because-apimswincrtruntimel110dll-is-missing-from-your-computer?forum=vcgeneral
相关文章推荐
- win7运行第一个opencv程序,基于opencv3.2,官方vc14编译版本,QT5.8 VS2015平台
- VS 2005 编译的程序不能运行的几个解决方法
- 为什么在Win7上编译的ADO程序不能在XP上运行
- VS2015编译的程序在其他电脑上运行不依赖VS相关运行环境
- vs2015+Qt5.7编译生成的程序在xp中运行提示不是有效的win32程序解决方案
- 解决WIN7-64,VS2008编译的MFC程序在WIN7-32/XP上不能运行的问题
- 'cl' 不是内部或外部命令,也不是可运行的程序 或批处理文件。vs2015+win10+64位
- vs2013编译程序不能在xp上运行的问题
- mfc对话框程序在ide编译可运行,但编译完毕的debug和release版本不能运行。。后来发现原因是:用到的sqlite数据库文件没在对应目录下,而代码中没有try..catch..
- vs2012-vs2013编译出来的程序不能在xp上运行解决方法
- VS 2005 编译的程序不能运行的几个解决方法
- vs2012-vs2013编译出来的程序不能在xp上运行解决方法
- Win10升级后,VS2015不能调试Web程序问题
- VS2012编译出来的程序,在XP上不能运行的原因
- vs2012-vs2013编译出来的程序不能在xp上运行解决方法
- VS2015中编译lua.lib并运行lua程序,版本lua5.3.4
- 水晶报表log4net导致vs下程序重新编译后不能运行
- 在WIN10系统下运行VS2013编译成功后出现:无法启动程序“.exe” 系统找不到指定文件的问题的解决方法
- VS 2005 编译的程序不能运行的几个解决方法
- VS 2005 编译的程序不能运行的几个解决方法