1、MAJOR

  • MAJOR表示当前APR的主版本号,它的变化通常意味着APR的巨大的变化,比如体系结构的重新设计,API的重新设计等等,而且这种变化通常会导致APR版本的向前不兼容。
    2、MINOR
  • MINOR称之为APR的次版本号,它通常只反映了一些较大的更改,比如APR的API的增加等等,但是这些更改并不影响与旧版本源代码和二进制代码之间的兼容性。
    3、PATCH
  • PATCH通常称之为补丁版本,通常情况下如果只是对APR函数的修改而不影响API接口的话都会导致PATCH的变化。目前为止APR的最高版本是1.2.2,最早遵循这种规则的版本号是0.9.0,不过在0.9.0之前,APR还推出了两个版本a8和a9。

不过有一点需要注意的是,我们后面描述的版本规则并不适合1.0.0以前的版本。对于1.0.0以前的版本(0.x.y),APR提供的API是可以任意的改变而没有任何的限制,因此这些版本的变化不遵循后面描述的版本规则。从1.0.0以后的所有版本都遵循。切记。除非主版本号发生变化,否则如果某个应用程序使用了低版本的APR,那么如果将该版本用高版本的APR替代,应用程序必须能够无错误的编译通过,通常我们称之为前向兼容行;反之很明显,如果应用程序中使用了高版本的APR,那么如果将该版本用低版本的APR替代,则未必能够编译通过,通常我们称之为后向不兼容。APR的发展中力图总是保持与旧版本的源代码和二进制版本之间的兼容性。通过源代码兼容,应用程序就可以在使用新版本的APR进行编译的时候不会报错,这样应用程序就不需要为了适应新的APR而做出调整,从而保持应用开发的一致性和持续性。除非APR的主版本号发生变更。这种兼容性反之则不成立。如果一个应用程序使用较高的MINOR版本开发,那么很明显,如果将该版本替换为MINOR相对较低的版本进行编译,则成功的可能性应该不是很大。除了源代码方面的兼容性,APR还希望能够保持二进制之间的兼容性。通过保持二进制兼容,应用程序可以直接使用高版本的APR库(或者是DLL,或者使so文件)替换低版本的库文件,而不需要做任何修改,就可以链接成功。与源代码兼容一样,二进制的兼容也是向前兼容,而不保证向后兼容。

作者:汪梓文
链接:https://www.jianshu.com/p/7ed43a8f7da3
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

MAJOR.MINOR.PATCH相关推荐

  1. Unsupported major.minor version (jdk版本错误)解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 如果你遇到了 Unsupported major.minor version ,请认真看一下,说不定会有帮助.  我花两个小时 ...

  2. window下启动nexus出错Unsupported major.minor version 51

    为什么80%的码农都做不了架构师?>>>    window下启动nexus报错: jvm 1 | java.lang.UnsupportedClassVersionError: o ...

  3. 解决Unsupported major.minor version 51.0错误

    最近新安装使用了jdk7,编译了一些类替换到原来正常运行的项目中,替换之后发生了Unsupported major.minor version 51.0错误.经过网上搜索发现了问题产生的原因:用jdk ...

  4. 关于Unsupported major.minor version 52.0报错问题解决方案

    关于Unsupported major.minor version 52.0报错问题解决方案 参考文章: (1)关于Unsupported major.minor version 52.0报错问题解决 ...

  5. 如何修复java.lang.UnsupportedClassVersionError:不支持的major.minor版本

    本文翻译自:How to fix java.lang.UnsupportedClassVersionError: Unsupported major.minor version I am trying ...

  6. Xamarin中Unsupported major.minor version 52.0问题解决

    Xamarin中Unsupported major.minor version 52.0问题解决 出现这种问题,是由于所使用的Java代码使用Java 8所才具有的特性.这个时候,需要将JDK升级到J ...

  7. java51_Java运行 Unsupported major.minor version 51.0 错误

    今天写了简单的Java程序,运行的时候不知道为啥出现这个问题 happy@happy-HP-Compaq-dx7518-MT:~/Study/CrazyJava$ java FieldTest Exc ...

  8. 【错误记录】jar 执行错误 ( java.lang.UnsupportedClassVersionError: Unsupported major.minor version 52.0 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 出错场景 : 在 [IntelliJ IDEA]导出可执行 JAR 包 博客中导出的 jar 包 ; 在 [IntelliJ IDEA]使用 exe ...

  9. com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0

    eclipse运行android project报错com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0 之 ...

最新文章

  1. 这家芯片公司98%员工学历不足本科,却要布局全产业链冲刺IPO,网友:认真的吗?...
  2. 【Kali渗透全方位实战】子域名的概念与探测(DNSenum工具和Sublist3r脚本的使用)
  3. Kibana 创建索引 POST 403 (forbidden) on create index
  4. 1.3.2 Jetty 的基本配置(2)
  5. SiteServer 迁移至 Windows 2008 R2 问题汇总
  6. 通过配置hosts.allow和hosts.deny文件允许或禁止ssh或telnet操作
  7. 华为机试HJ98:自动售货系统
  8. nutch 1.5 solr 4.0 warmup
  9. gaussian09使用教程linux,Gaussian 09 GaussView5.0使用教程.ppt
  10. 谷歌浏览器安装FeHelper插件
  11. 深圳自己做网站 服务器,深圳自己做网站 服务器
  12. JavaScript 原型
  13. 安卓手机通过termux免root安装kali
  14. 朋友们求助一个相关实际操作中的设计的问题
  15. python 结合百度识图识别文字
  16. 基于Winform开发S7.net协议 与Smart-200PLC通讯
  17. matlab 图像 局部极值,[转载]matlab 图像局部求极值
  18. ajax 的前因后果 以及优缺点
  19. MYSQL 错误1604
  20. Linux进程调度-deadline调度器

热门文章

  1. 主动信息获取模式下PLC性能的影响因素分析
  2. 使用Solidworks、ADAMS、Simulink进行机电联合仿真
  3. 数据库设计——医药销售管理系统
  4. “这本漫画真厉害!”男性榜第1名,进击的巨人三维模型来了~!
  5. oracle数据库权限
  6. CAS中的ABA问题
  7. 来自wzc的简单拓扑dp———浙江农林大学第二十届程序设计竞赛暨团体程序设计天梯赛选拔赛(同步赛)
  8. 网红警犬成长记:训导员“和它在一起时间比家人多”
  9. 关于软件开发,测试什么时候介入项目
  10. ubuntu编译opencv-contrib