我有一个用 autotools 构建的项目,分为两个文件夹;第一个lib创建一些库,第二个tools链接它们。
构建失败,因为 libtool 在重新链接时将库重命名如下:
mylib.1.0.0 -> mylib.1.0.0U
重命名发生后,反正之前的名字没有恢复,也没有创建新的mylib.1.0.0 ,所以像mylib这样的符号链接仍然指向没有多余U的名字,链接失败。
有没有办法避免这种情况?或者甚至可能完全避免重新链接?我正在使用 libtool 1.5.6 版。
显然我明白了......
这个问题很容易通过以下结构重现:
然后你必须在 lib/Makefile.am 中指定这个:
lib_LTLIBRARIES = \
libb.la \
liba.la
此时将生成一个 liba.so.1.0.0U 文件。改为指定(请注意库的顺序已更改)
lib_LTLIBRARIES = \
liba.la \
libb.la
构建工作正常。
我同意以正确的顺序指定事物在任何情况下都是最好的做法;我仍然不清楚这是否是 libtool 错误......