当交叉编译某些项目(特别是使用libtool设置构建的项目)作为基于unix的系统的共享库时,输出通常是* .so.xyz文件,其中包含共享库的所有版本信息标准。
不幸的是,有几个平台,特别是黑莓和Android,在应用程序包中与soname版本控制和符号链接不兼容。
理想情况下,您可以告诉构建工具在没有版本控制的情况下构建共享库,但我发现这是一项非常困难且耗时的任务。对于某些项目,我无法想象如何防止版本控制。在项目构建脚本中使用变量也可能会默默地破坏某些内容或导致意外行为。
有没有办法在构建完成后删除一组共享对象二进制文件的所有版本信息?
答案 0 :(得分:0)
是的,您可以将-avoid-version
添加到<your library>_LDFLAGS
按照此处的说明停用它:GNU Autotools: rebuild without version info