【问题标题】:libtool adding extra 'U' to .so file nameslibtool 将额外的“U”添加到 .so 文件名
【发布时间】:2008-12-15 10:33:13
【问题描述】:
我有一个用 autotools 构建的项目,分为两个文件夹;第一个,lib,创建一些库,第二个,tools,链接它们。
构建失败,因为 libtool 在重新链接时将库重命名如下:
mylib.1.0.0 -> mylib.1.0.0U
重命名发生后,反正之前的名字没有恢复,也没有创建新的mylib.1.0.0,所以像mylib这样的符号链接还是指向到没有额外 U 的名称并且链接失败。
有没有办法避免这种情况?或者甚至可能完全避免重新链接?我使用的是 libtool 1.5.6 版。
【问题讨论】:
标签:
linux
autotools
libtool
【解决方案1】:
显然我明白了...
该问题很容易通过以下结构重现:
- 一个 lib 文件夹,构建:
- 一个src文件夹,构建prog,链接libb
那么你必须在 lib/Makefile.am 中指定这个:
lib_LTLIBRARIES = \
libb.la \
liba.la
此时将生成一个 liba.so.1.0.0U 文件。改为指定(注意库的顺序已更改)
lib_LTLIBRARIES = \
liba.la \
libb.la
构建工作正常。
我同意以正确的顺序指定事物在任何情况下都是最好的做法;我仍然不清楚这是否是 libtool 错误...