Pergunta

Fundo

Recentemente, deparei com a fuppes UPnP Media Server e parecia ótimo. Eu instalei no meu servidor de casa e começou a usá-lo para transmitir vídeo ao meu XBox. Ele trabalhou realmente bem e eu estava feliz com isso. Então eu atualizei meu distribuição de servidores e fuppes parou de funcionar; Agora eu sei que é porque várias bibliotecas têm depreciado, mais especificamente debian começou soltando os arquivos .la libtool da maioria de seus pacotes .

O Problema / Pergunta

Assim, a minha pergunta é: como faço para construir fuppes agora que eu não tenho esses arquivos .la para libtool? Mais especificamente, esta é a minha mensagem de erro exata:

/bin/sed: can't read /usr/lib/libogg.la: No such file or directory
libtool: link: `/usr/lib/libogg.la' is not a valid libtool archive

Eu não tenho mais um arquivo /usr/lib/libogg.la. Isto prova que a partir do terminal:

# dpkg -L libogg-dev | grep "a$"
/usr/lib/libogg.a
#

Eu só preciso ser apontado na direção certa realmente. Eu li os docs libtool-automake mas eu ainda estou perdendo aquele pedaço de informação que me diz como compilar agora que eu não tenho libogg.la mais. Assim, em breve, como faço para compilar na ausência de .la arquivos?

NB. Isto é tudo no Ubuntu Karmic Koala

Foi útil?

Solução

Eu acredito que o Debian foi soltando os arquivos .la, pois pode causar problemas quando você está construindo para ambos os 32-bit e 64-bit. Se libtool encontrar um arquivo .la, tem um péssimo hábito de colocar o caminho completo para a biblioteca no comando link, e isso às vezes é a biblioteca errado (de 32 bits em vez de 64 bits ou vice-versa). No Solaris, eu tive um problema de libtool querendo ligação /usr/lib/libintl.so vez de /usr/lib/64/libintl.so, tudo porque ele encontrou /usr/lib/libintl.la

Você deve ser capaz de ligação sem o arquivo .la especificando -logg na linha mumble_LIBADD (substitua 'murmurar' com o nome do pacote que você está construindo) dentro do Makefile.am apropriado. Se por algum motivo o vinculador não pode encontrar a biblioteca, você pode especificar um caminho para ele, acrescentando algo como isto:

mumble_LDFLAGS = -R / usr / lib -L / usr / lib

Mas neste exemplo, eu tenho que acreditar que / usr / lib está no caminho de busca padrão para bibliotecas.

Para a sua mensagem de erro particular, com sed, eu não sei por que fuppes usos sed para encontrar /usr/lib/libogg.la, mas isso pode espero ser corrigido por um montante mudança apropriada de libtool (como em autoconf ou automake ). Eu suspeito que há um lugar chave na 'configure' que ajuda com esta questão (como --with-ogg ou algo assim). Execute 'configure --help' e olhar para algumas dicas lá.

Outras dicas

Você não deve precisar os arquivos .la. Você não colar as partes importantes da saída do comando - o que passo está tentando link para o arquivo libogg.la. Meu palpite é libtool, e meu palpite é que após a atualização você estiver executando make em seu diretório fonte ou vcs check-out, sem executar novamente autogen.sh ou configure conforme apropriado.

Em suma, você não dá informação suficiente para ajudá-lo ainda mais (Como você conseguiu fuppes? Como você construí-lo? Como você tentar construí-lo após a atualização?). O mais provável, ou você esqueceu de arquivos de compilação regenerados, ou algum outro passo vinculador está puxando em um arquivo e necessidades .la ser regenerado (por exemplo, um arquivo pkg-config).

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