什么是CRT的C++等价物?

use*_*761 3 c c++ windows

我是C++的新手,但之前我曾与C合作过.

用C编写的程序必须与libcmt.lib包含C函数的CRT(在Windows中,它是文件)链接(例如:)printf().

但我想知道,有没有"C++ RT"(与CRT相对),我的意思是C++函数和类(例如std::ofstream:)存储在哪里.

我有另一个问题,如果我使用了一些C函数(例如:) printf(),我的C++程序是否会与CRT和"C++ RT"链接,或者"C++ RT"是否包含CRT?

Iva*_*rop 14

这取决于 您正在使用的C++标准库的确切实现.

GCC附带libstdc ++,您的程序会自动链接到libstdc++*.so*libstdc++*.dll*(文件名可能因发行版,构建选项和使用的版本而异)

Clang/LLVM附带libc ++libc++*.so*Linux和OS X,但在Windows上使用Visual C++库.

Microsoft Visual C++链接其中一个libcp*.libmscp*.lib(和相关.dll),具体取决于配置(链接).

请注意,通常可以使用非默认的标准库实现.例如,Clang可以在Linux上使用libstdc ++或libc ++.英特尔编译器在Windows上使用Microsoft库,在Linux上使用libstdc ++.还有一些与特定编译器无关的实现,如STLport.