Windows是否自带C语言运行库?

Windows

1个回答

写回答

linda旦旦

2026-02-13 20:30

+ 关注

Windows
Windows

Windows从95 OSR2.5起才开始自带C语言运行库MSVCRT.DLL,一直到Windows 8.1,也仅仅就带了这一个。MSVCRT.DLL原本是Visual C++ 4.2到6.0的C语言运行库,在后续版本成为系统内置组件时,也相应地扩充了新的C标准API以及一小部分C++运行库,像异常处理之类的。从Visual C++.net 2002(也就是7.0版本)开始,微软几乎会为每个版本的编译器都提供一份C运行库,像msvcr71.dll、msvcr100.dll等就是这类运行库,它们提供的功能和MSVCRT.DLL等效,但能更好地兼容最新的语言标准。大家安装的很多Microsoft Visual C++ Redistribution 2015之类的就属于这种情况。不过这些运行库不是系统自带的,所以如果系统使用的时间很长,安装的软件又足够多,就会在程序列表里看到从2005年到2022年的一长串这类运行库。后来,微软为解决不同编译器版本间的兼容问题,提供了UCRT(通用C运行库),确保即便更换了编译器也能使用一个通用的外部C语言运行库,因为相比之下MSVCRT.DLL实在是太过时了。但UCRT只有Windows 10及以后的系统才自带。不过对于商业编译器(如Visual Studio和C++ Builder)来说,是支持把C运行库静态链接进程序的,这样程序运行时就不需要依赖外部运行库了。而像OpenWatcom则提供了一套自己的运行库,同样不依赖外部或者系统的运行库。MinGW和MinGW - w64因为提供一套自己的C运行库可能存在法律问题(这个问题在零几年的时候就被充分讨论过了),不过也给予了用户指定使用哪个C运行库的权利。例如llvm - mingw(Clang+MinGW - w64)默认使用UCRT,MinGW默认使用MSVCRT.DLL,用户也可以自行修改开关来使用诸如msvcr71.dll之类的运行库。另外,微软的C运行库大体上是提供源代码的(但有些只提供编译后的二进制文件),早期FireFox曾使用修改过的微软C运行库来解决这个C运行库本身存在的问题,比如mozcrt19.dll。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号