Como posso fazer um programa (usando SDL) construído no Ubuntu funcionar em outros sistemas?

4

Estou escrevendo um programa que usa o OpenAL. Quando eu ligo contra ele (eu estou usando o CMake), ele também liga contra libpulse - PulseAudio. Isso resulta no binário não funcionando em outros sistemas. Posso de alguma forma não vincular o PulseAudio e ainda usar o OpenAL no Ubuntu?

Editar: Acabei de descobrir algo: não é o OpenAL que está arrastando o PulseAudio, é o SDL. Há algo que eu possa fazer sobre isso?

    
por htorque 23.08.2010 / 22:10

2 respostas

1

Sobre o pulseaudio SDL você pode simplesmente instalar o libsdl1.2debian-alsa, ele irá remover a versão do pa-sdl e linkar com bibliotecas ALSA. Ainda assim, é provável que você obtenha outras compatibilidades relacionadas a binários / bibliotecas, como o dv3500ea mencionou. Uma abordagem comum para evitar problemas de dependência relacionados ao sistema é usando a vinculação estática. Isso tornará os binários muito maiores porque eles incluem o código necessário das bibliotecas.

Para mais informações sobre verificação de ligação estática: link

    
por João Pinto 23.08.2010 / 22:47
2

Compile o binário separadamente em cada plataforma para a qual você deseja fornecer pacotes binários e certifique-se de distribuir o código-fonte para que as pessoas em outras plataformas possam criá-lo por conta própria.

Observe que o Linux se concentra na compatibilidade de fontes, e não na compatibilidade binária. A maioria das distribuições não são binariamente compatíveis entre si (nem mesmo o Ubuntu e o Debian são completamente compatíveis * ).

Esta é uma questão um pouco relacionada: Tecnicamente falando, o que há de diferente no Ubuntu comparado a outras distribuições Linux?

    
por dv3500ea 23.08.2010 / 22:19