C++ 标准库是否比 winAPI 具有更多的环境依赖性?
Does the C++ std library have some more environmental-dependencies than the winAPI?
我知道胜利 API 是 Windows 中最底层的东西。当电脑安装了Windows系统时,只要系统版本符合API要求,API功能就可以使用。
但是,例如,.NET 需要安装 .NET 框架,因此它具有更多的环境依赖性。
那么,C++ std 库是否需要框架之类的东西,或者几乎每台计算机都已经预先安装了所需的东西?
通常是的,在 Windows 上,C++ std 库是一个 DLL,不,它 不是 Windows 的一部分。
在 Visual C++ 的情况下,您需要相应的 Visual C++ Redistributable package,它将安装 MSVCP140.DLL
等文件
MinGW 使用 GCC/libstdc++ DLL,如 libgcc_s_dw2-1.dll
、libstdc++-6.dll
等
如果您想避免安装这些文件,通常可以选择link您的程序静态(例如/MT
for VC++ 和 -static
对于 MinGW),在这种情况下,所需的 CRT 部件将嵌入到您的 binary/executable 中(以其大小和安全补丁生命周期为代价)。
我知道胜利 API 是 Windows 中最底层的东西。当电脑安装了Windows系统时,只要系统版本符合API要求,API功能就可以使用。
但是,例如,.NET 需要安装 .NET 框架,因此它具有更多的环境依赖性。
那么,C++ std 库是否需要框架之类的东西,或者几乎每台计算机都已经预先安装了所需的东西?
通常是的,在 Windows 上,C++ std 库是一个 DLL,不,它 不是 Windows 的一部分。
在 Visual C++ 的情况下,您需要相应的 Visual C++ Redistributable package,它将安装 MSVCP140.DLL
等文件
MinGW 使用 GCC/libstdc++ DLL,如 libgcc_s_dw2-1.dll
、libstdc++-6.dll
等
如果您想避免安装这些文件,通常可以选择link您的程序静态(例如/MT
for VC++ 和 -static
对于 MinGW),在这种情况下,所需的 CRT 部件将嵌入到您的 binary/executable 中(以其大小和安全补丁生命周期为代价)。