【发布时间】:2011-01-24 13:46:53
【问题描述】:
我来自 Linux 世界,知道很多关于维护用 C++ 语言编写的动态库 API 的向后二进制兼容性 (BC) 的文章。其中之一是基于Itanium C++ ABI 的"Policies/Binary Compatibility Issues With C++",由GCC 编译器使用。但我找不到与 Microsoft C++ 编译器(来自 MSVC)类似的东西。
我了解大多数技术适用于 MS C++ 编译器,我想发现与 ABI 差异(v-table 布局、修改等)相关的编译器特定问题
所以,我的问题如下:
- 在维护 BC 时,您知道 MS C++ 和 GCC 编译器之间的区别吗?
- 在哪里可以找到有关 MS C++ ABI 或在 Windows 中维护 API BC 的信息?
任何相关信息将不胜感激。
非常感谢您的帮助!
【问题讨论】:
-
无论您使用哪种编译器,这看起来都是不错的建议。实际上,文本说“此文本适用于可以构建 KDE 的编译器使用的大多数 C++ ABI。”并且还提到了 MSVC ABI 信息的来源 - 所以这很可能已经涵盖了 MSVC ABI。
-
好问题 - 但 API 和 ABI 的混合似乎不清楚。标题和文本都可以进行编辑;当我认为它至少应该引用二进制兼容性时,标题没有对 ABI 发表评论。
-
@Rup - 它们也被注明:
it's the most complete information found so far on MSVC ABI and name mangling和some of the constraints specified here may not apply to a given compiler。我想发现特定于编译器的问题。 -
@sdg - 我已将标题更改为更具体的二进制文件。
-
嗯,我能让你停止编辑这个问题的标签的唯一方法是锁定它,或者锁定你。我不想搞砸你的赏金,所以...编辑一个帖子 17 次来修改它通常会导致帖子最终归社区所有,所以你可能不想在非赏金问题上尝试这种俗气。跨度>
标签: c++ visual-c++ gcc backwards-compatibility itanium-abi