Как я могу заставить программу (использующую SDL), построенную на Ubuntu, работать на других системах?

Я пишу программу, которая использует OpenAL. Когда я ссылаюсь на него (я использую CMake), он также ссылается на libpulse - PulseAudio. Это приводит к тому, что двоичный файл не работает в других системах. Могу ли я как-то не связать с PulseAudio и все еще использовать OpenAL в Ubuntu?

Редактировать: Я только что-то понял: это не OpenAL, который перетаскивает PulseAudio, это SDL , Что я могу с этим поделать?

4
задан 6 January 2011 в 21:25

2 ответа

О SDL pulseaudio вы можете просто установить libsdl1.2debian-alsa, он удалит версию pa-sdl и свяжется с библиотеками ALSA. Тем не менее, вы, вероятно, получите другие совместимые двоичные файлы / библиотеки, такие как dv3500ea. Обычный подход, позволяющий избежать проблем, связанных с системой, заключается в использовании статических связей. Это сделает двоичные файлы намного больше, поскольку они содержат необходимый код из библиотек.

Для получения дополнительной информации о проверке статических ссылок: http://wiki.linuxquestions.org/wiki/Static_linking

0
ответ дан 6 January 2011 в 21:25

Создайте двоичный файл отдельно для каждой платформы, для которой вы хотите предоставить двоичные пакеты, и убедитесь, что вы распространяете исходный код, чтобы люди на других платформах могли создавать его для себя.

Обратите внимание, что Linux фокусируется на совместимости с исходным кодом, а не на двоичной совместимости. Большинство дистрибутивов не совместимы в двоичном формате (даже Ubuntu и Debian не полностью совместимы * ).

Это несколько связанный вопрос: С технической точки зрения, что отличается от Ubuntu по сравнению с другими дистрибутивами Linux?

0
ответ дан 6 January 2011 в 21:25

Другие вопросы по тегам:

Похожие вопросы: