1

我有一个有很多静态成员的类,但是我在头文件的中间添加了新函数。

这会破坏二进制兼容性吗?客户端需要重新编译吗?

编辑(1):类只有静态函数,没有其他函数和数据成员

4

1 回答 1

4

你的类没有虚函数,所以你的新中间函数不会改变v-table。类中的其他静态成员(函数和全局变量/数据)在 Linux、Unix 或 Mac 上由适当的符号名称调用,并且您的更改是向后兼容的。

但这是 Windows 上的一个重大更改,因为所有函数都由序号而不是名称调用(除非您使用def文件为函数定义自定义序号)。

尝试使用abi-cc工具来自动检查库的向后二进制兼容性。

于 2013-02-04T08:30:35.043 回答