如何从GCC源正确升级STL

问题描述 投票:0回答:1

我从源代码构建了 gcc/g++ 10.5.0,因为我猜测 v10.5.0 比 v10.2.1 更稳定,v10.2.1 是我可以从 Debian-11 官方 apt 存储库获得的最新版本。

gcc源码自带的制作脚本非常完善,不仅制作了一套编译器,还制作了STL(libstdc++6.so,我猜是STL实现)和许多其他lib。

替换编译器二进制文件很容易,甚至我还可以添加一个

update-alternatives
让这两个版本并存。

但是我想在我的生产环境(Debian-11服务器,没有开发工具)中使用新的库,因为升级编译器只能改进我的应用程序的代码,但对生产环境中已经存在的STL无能为力.

因为两者的主要版本都是 v10,我猜 API 不会改变(更可能是 bug 修复)。事实上,他们的名字完全相同,例如。

libstdc++.so.6.0.28
libatomic.so.1.2.0
libitm.so.1.0.0
等等。

问题1:

如何正确升级/替换我的生产环境中的STL? 如果我只是用我自己的替换它们,这会影响生产环境的其他应用程序甚至整个系统吗?

问题2:

制作打算替换 STL 的 .deb 包时需要哪些文件/库?

gcc installation stl g++ debian
1个回答
0
投票

GCC 如何在 C++ 中实现向量容器?关于深入研究向量源代码的博客系列!我一直喜欢阅读我要使用的库的源代码,就在最近,我开始研究 GCC 如何在 C++ 中实现向量容器的一些核心方法。我很高兴分享一系列博客(总共 3 篇博客文章),其中解释了:

基本结构(_Vector_base 和 _Vector_impl)及其方法。

向量的内存分配和释放。

调用向量构造函数时会发生什么?

push_back
pull_back
等方法功能在good下是如何实现的?

还有更多!

以下是博客文章的链接:

了解向量在 C++ 中的工作原理(第 1 部分):push_back 是如何工作的?

了解向量在 C++ 中的工作原理(第 2 部分):初始化向量时会发生什么?

了解向量在 C++ 中的工作原理(第 3 部分):深入了解向量最常用的方法

我必须承认我仍在学习,并且我正在积极寻找博客上的任何建设性反馈。能够理解和分享源代码中使用的设计模式对我来说是一次很好的学习。

© www.soinside.com 2019 - 2024. All rights reserved.