概念上二进制和源兼容性有什么区别?

时间:2013-02-16 09:15:05

标签: google-chrome compilation webkit

在chrome源代码中的webkit环境中,它表示它是源兼容的,但不是二进制兼容的。它是否建议我们构建webkit的.dll文件并使用chrome binary构建它?

2 个答案:

答案 0 :(得分:2)

(这个答案没有谈到WebKit的具体背景 - 目前还不清楚你所说的各种各样的部分是什么意思。我试图给出一个更一般的答案。)

假设我们有一个名为LibFoo的库,你已经构建了一个名为SuperBar的应用程序,它使用了LibFoo v1。

现在LibFoo v1.1出来了。

  • 如果这是二进制兼容,那么你应该能够只使用新的二进制文件,SuperBar将使用新代码而不用任何其他更改
  • 如果这只是源兼容,那么你需要在v1.1之前重建SuperBar才能使用它

答案 1 :(得分:0)

我会从Linking

的角度考虑 <块引用>

链接是获取类或接口并将其组合到 Java 虚拟机的运行时状态以便它可以执行的过程。

<块引用>

链接类或接口涉及验证和准备 类或接口,它的直接超类,它的直接超接口, 以及它的元素类型(如果是数组类型),如有必要。

如果引入新的更改破坏了链接,那么它与源(代码)不兼容(以及binary compatible

如果引入新的更改不会破坏链接,那么它至少是 binary compatible