GNU Autotools:在没有版本信息的情况下重建

Posted

技术标签:

【中文标题】GNU Autotools:在没有版本信息的情况下重建【英文标题】:GNU Autotools: rebuild without version info 【发布时间】:2012-08-12 22:13:28 【问题描述】:

我需要构建一个配置了自动工具的库。通常的configure && make && make install 步骤会生成版本化的共享库,例如libfoo.so.x.x 是否可以修改 configure.ac 或 Makefile.am(当然还要跟进 autoreconf )以便构建未版本化的库。

谢谢!

【问题讨论】:

【参考方案1】:

是的,假设库是使用 libtool 构建的,您可以通过将 -avoid-version 标志添加到库的 LDFLAGS 来删除版本信息。

例如,如果之前有 libfoo_la_LDFLAGS = -version-info 1:0 您可以将其更改为 libfoo_la_LDFLAGS = -avoid-version。在此之后,您将重新生成并重新运行 configure (autoreconf -vfi && ./configure) 并重建。

仅删除 -version-info ... 是不够的,因为 libtool 会生成一个版本信息为 0.0.0 的库。

更多信息请参见 libtool 手册:http://www.gnu.org/software/libtool/manual/html_node/Link-mode.html

【讨论】:

以上是关于GNU Autotools:在没有版本信息的情况下重建的主要内容,如果未能解决你的问题,请参考以下文章

重新排序 gnu autotools 链接器标志

gnu autotools

gnu autotools

如何通过 GNU Autotools 链接共享库

【转】GNU autotools(二)关于autogen.sh的说明

使用 GNU autotools 进程和 Oracle Pro C 预处理器