[ CATEGORY ]

# cpp_

1 篇

cpp 分类下共有 1 篇编程实战文章,涵盖常见问题排查、代码示例与实践经验。

cpp●

C++ ABI 兼容性实战:改一行头文件为什么会让程序崩溃

先看一个真实场景:你维护一个基础库 libfoo.so,某次在类里加了一个成员变量,重新编译发布。调用方的代码一行没改,也没有重新编译,启动后却在析构 std::string 时崩溃。日志、单元测试、内存检查工具都正常,问题只在“新旧二进制混跑”时出现。

这类问题通常不是逻辑 bug,而是 ABI 被破坏了。本文以 Linux + GCC/Clang 为例,梳理 C++ ABI 的边界、常见破坏点和可落地的防护手段。

源码兼容不等于 ABI 兼容

ABI(Application Binary Interface)是二进制层面的契约,包含:

[ 查看全文 ]→