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.

Foi útil?

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 ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top