libtool acrescentando extra 'U' para .so nomes de arquivos
Pergunta
Eu tenho um projeto construído com autotools, dividido em duas pastas; o primeiro, lib , cria algumas bibliotecas, ea segunda, ferramentas , links contra eles.
A construção falhar porque libtool renomeia as bibliotecas da seguinte forma enquanto religação:
mylib.1.0.0 -> mylib.1.0.0U
Depois de ocorrer a mudança de nome, de qualquer maneira, o nome anterior não é restaurado, nem é um novo mylib.1.0.0 criado, então os links simbólicos como mylib Ainda ponto para o nome sem o extra de U e a ligação falhar.
Existe alguma maneira de evitar isso? ou talvez até mesmo para evitar a religação em tudo? Estou usando libtool versão 1.5.6.
Solução
Aparentemente eu consegui ...
O problema é facilmente reproduzível com a seguinte estrutura:
- a lib pasta, construindo:
- Liba
- libb , dependendo Liba
- a src pasta, a construção de prog , que liga libb
Em seguida, você deve especificar isso em lib / Makefile.am:
lib_LTLIBRARIES = \
libb.la \
liba.la
Nesse ponto um arquivo liba.so.1.0.0U será produzido. Especificando vez (note que a ordem das bibliotecas é alterado)
lib_LTLIBRARIES = \
liba.la \
libb.la
a construção funciona bem.
Concordo que especificar coisas na ordem correta é em qualquer caso, a melhor coisa a fazer; o que ainda não está claro para mim é se este é um bug libtool ou não ...