问题描述
我正在创建一个客户端服务器架构,其中我使用 c++ 作为我的后端和 QML/c++ 作为我的前端。我在一个公共库中共享常见的 c++ 结构,这些结构构成了在客户端和服务器之间通过它传递的数据API。
所以现在如果我在公共库 v 1.0 中有这样的结构
struct DummyStruct{
public:
int x;
int y;
}
然后我更新了结构并发布了一个新版本的公共库版本 1.1
struct DummyStruct{
public:
int x;
int y;
string z;
}
- 服务现已编译为通用 1.1 版
- 客户端 A 使用通用版本 1.0 编译
- 现在客户端 A 的底层系统已更新为最新版本的 common 1.1,我的理解是,由于向结构中添加了非静态公共成员,这会破坏 ABI。
如果我遗漏了什么,任何关于 ABI 的进一步解释都会有所帮助。我相信我需要隐藏使用 pimpl 模式定义 API 的所有结构。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)