如何获取 C++ 标准库的源码

获取 C++ 标准库主要有两种途径: 从 C++ 编译器的安装位置(Your C++ compiler installation location)和直接查看或下载网上开源代码(Online open source codes). 具体如下:

C++编译器的安装位置(Your C++ compiler installation location)

Windows OS

Visual Studio — X:\Microsoft Visual Studio 9.0\VC\crt\src; X:\Program files (x86)\Microsoft Visual Studio 14.0\VC\include\; X:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\crt\src

D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xtree
Note,
1) You even don't have to install Visual Studio to explore Microsoft implementation. Online compilers can help: rextester.com/NRP17506
2) In Visual Studio if you interesting in concrete(specific) STL-element implementation (for example, any function), right click on its mention in your code and chose "Go to Definition" in context menu. (Or place cursor on this mention and push "F12")

Linux/Unix

gcc — /usr/include/c++/; /usr/lib/gcc/CTARGET/𝐶𝑇𝐴𝑅𝐺𝐸𝑇/VERSION/include/g++-v4/
Note, `locate iostream` is a good solution to find the installation location.

queue队列代码位置:

D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\queue

网上开源代码(Online open source codes)

  • libc++

libc++ — the C++ standard library of LLVM project.
libc++ is an implementation of the C++ standard library, targeting C++11, C++14 and above.
“libc++” C++ Standard Library — libc++ documentation
llvm-project/libcxx at main · llvm/llvm-project · GitHub

  • gcc

GCC, the GNU Compiler Collection
The GNU project is Free and Open Source software, and contains an implementation of the C++ standard library.
gcc/libstdc++-v3 at master · gcc-mirror/gcc · GitHub
GitHub - gcc-mirror/gcc

  • Apache stdcxx

Apache C++ Standard Library.
The Apache C++ Standard Library project (code name stdcxx, pronounced "standard C++ library", not S-T-D-C-X-X) is a collection of algorithms, containers, iterators, and other fundamental components of every piece of software, implemented as C++ classes, templates, and functions essential for writing C++ programs.
Apache C++ Standard Library
asf - Revision 1917418: /stdcxx

  • STLport

Multiplatform C++ Standard Library (STL implementation). Many compilers and operational environments supported. Standard (ISO/IEC 14882) compliance. Maximum efficiency. Exception and thread safety. Debug mode.
STLport: Welcome!
STLport download | SourceForge.net

  

  • SGI STL

SGI(Silicon Graphics Computer Systems, Inc.) implement STL(C++ Standard Libirary).
GitHub - karottc/sgi-stl: SGI(Silicon Graphics Computer Systems, Inc.) implement STL(C++ Standard Libirary).

  • MSVC STL

Microsoft's C++ Standard Library
MSVC's implementation of the C++ Standard Library. GitHub - microsoft/STL: MSVC's implementation of the C++ Standard Library.

参考资料

[1] https://stackoverflow.com/questions/2004212/where-to-get-the-source-code-for-the-c-standard-library 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要在VS2019中调试C++标准库源码,可以按照以下步骤进行操作: 1. 在VS2019中创建一个新的项目。选择空项目模板,并指定项目的名称和位置。 2. 打开项目的属性页面。在“C/C++”选项下的“常规”选项卡中,将“预处理器定义”这一属性更改为 `_ITERATOR_DEBUG_LEVEL=0`。这将禁用迭代器调试级别,以便我们能够进行标准库源码的调试。 3. 在项目中添加需要调试的标准库源码文件。可以通过将标准库源码文件拷贝到项目目录下,或者使用VS2019的“添加现有项”功能将文件添加到项目中。 4. 在需要调试的源码文件中,添加适当的断点。可以在所需的行上单击左侧空白区域,或者使用F9键添加断点。 5. 配置调试器。在菜单栏上选择“调试” -> “调试的属性” -> “调试引擎”。在弹出的对话框中,选择“原生”作为调试引擎。 6. 构建并运行项目。可以使用F5键或者在菜单栏上选择“调试” -> “开始调试”来启动调试会话。 7. 当程序执行到断点处时,调试器将暂停执行,并显示相关的源码和调试信息。 8. 可以使用调试器提供的功能来单步执行、检查变量的值和调用栈等信息,以便更好地理解和调试标准库源码。 需要注意的是,由于标准库源码通常较大且复杂,调试时可能会遇到一些挑战。因此,在调试过程中,建议着重关注与自己代码相关的部分,并使用调试器来逐步追踪和理解。 ### 回答2: 要调试C++标准库源码,可以使用Visual Studio 2019提供的调试工具。以下是一些步骤: 1. 首先,需要确保已经安装了Visual Studio 2019,并创建了一个C++项目。 2. 下载并解压C++标准库源码。可以从C++标准库的官方网站或其他来源获取。 3. 将源码中的头文件和源文件添加到项目中。可以通过右键点击项目,选择"添加"->"现有项"来添加文件。 4. 在需要调试的代码中设置断点。可以在代码行的左侧单击添加断点,或者使用快捷键F9。 5. 启动调试。可以在菜单栏中选择"调试"->"开始调试",或使用快捷键F5。 6. 操作程序以触发断点。可以运行程序,直到断点处停止。 7. 在调试过程中,可以使用Visual Studio 2019的调试工具进行查看变量值、单步执行、查看调用栈等操作。 8. 可以在代码中的适当位置设置多个断点,以便更详细地调试。 9. 需要注意的是,C++标准库源码通常比较庞大复杂,调试过程可能会比较耗时。在调试期间,可以使用调试窗口来查看变量的值和程序状态,这有助于找出问题所在。 总之,使用Visual Studio 2019调试C++标准库源码需要将源码添加到项目中,并设置断点进行调试。调试过程中可以使用Visual Studio 2019提供的调试工具来检查变量值和程序状态。 ### 回答3: 要在VS2019中调试C++标准库源码,可以按照以下步骤进行: 1. 下载C++标准库源码:可以从官方网站或开源社区获取C++标准库源码的压缩包,解压到本地。 2. 打开VS2019:启动Visual Studio 2019。 3. 创建新的空项目:选择“文件”->“新建”->“项目”,在弹出的对话框中选择“Visual C++”->“空项目”,并为项目命名。 4. 配置项目属性:在“解决方案管理器”中右键点击项目名称,选择“属性”,打开项目属性窗口。在“配置属性”下选择“常规”,确保项目配置类型是“应用程序”,平台工具集选择与其编译的标准库版本匹配的平台工具集。 5. 添加源码文件:在“解决方案管理器”中右键点击项目名称,选择“添加”->“现有项”,选中你下载好的C++标准库源码文件,点击“添加”。 6. 配置调试设置:在主菜单栏中选择“调试”->“选项”->“调试”->“符号文件”,勾选“Microsoft符号服务器”并勾选“加载本地符号文件”选项。 7. 设置断点:在C++标准库源码中选择需要调试的函数或行,在左侧的边栏中单击设置断点。 8. 开始调试:在主菜单栏中选择“调试”->“开始调试”或按下F5键,程序将开始运行和调试。 9. 分析调试结果:在程序执行过程中,运行时会停在设置的断点处。可以使用VS的调试工具,如自动变量窗口、监视窗口等,来检查变量的值、程序的执行流程等,以便分析调试结果。 通过以上步骤,你就可以在VS2019中成功调试C++标准库源码了。请注意,C++标准库源码通常很大且复杂,因此在调试过程中可能需要花费一些时间来理解源码的结构和工作原理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值