【发布时间】:2012-08-12 22:13:28
【问题描述】:
我需要构建一个配置了自动工具的库。通常的configure && make && make install 步骤会生成版本化的共享库,例如libfoo.so.x.x 是否可以修改 configure.ac 或 Makefile.am(当然还要跟进 autoreconf )以便构建未版本化的库。
谢谢!
【问题讨论】:
标签: autotools autoconf automake
我需要构建一个配置了自动工具的库。通常的configure && make && make install 步骤会生成版本化的共享库,例如libfoo.so.x.x 是否可以修改 configure.ac 或 Makefile.am(当然还要跟进 autoreconf )以便构建未版本化的库。
谢谢!
【问题讨论】:
标签: autotools autoconf automake
是的,假设库是使用 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
【讨论】: