Как включить зависимости разделяемой библиотеки с моим двоичным файлом (без использования .deb или .rpm) и / или статически связать с PulseAudio?

У меня трудные времена при создании инструментов командной строки, написанных на C ++, чтобы они могли выполняться как версиями Ubuntu для i386, так и для amd64 (в идеале и для других дистрибутивов, но это не так важно). Он будет распространяться на USB-ключе, поэтому я не могу контролировать упаковку.

Мой инструмент командной строки также должен воспроизводить аудио из буфера, поэтому я использую PulseAudio Simple для воспроизведения аудио буферов.

Обратите внимание, что мой исполняемый файл отлично работает на моей машине для разработки. Проблемы возникают, когда я копирую его на USB-ключ и запускаю на других машинах. Там, как только я запускаю свой исполняемый файл, я получаю ошибку «Файл не найден» от bash; из того, что я узнал, это должно быть из-за отсутствия пакета libpulse-dev (и, следовательно, библиотеки, которая динамически связана) на целевой машине.

Итак, я спрашиваю: что я должен делать? Я пытался создать 32-битную статическую PulseAudio, но потом я даже не могу заставить ее скомпилировать, и, честно говоря, я не знаю, что еще попробовать. Есть ли другой способ, кроме статического связывания, для развертывания общих библиотек с моим приложением на USB-ключе?

Спасибо

0

Решение

  1. Пожалуйста, включите все соответствующие общие библиотеки на флешку. Для этого запустите ldd your_app чтобы получить список соответствующих библиотек.
  2. Сделайте предпочтительный сценарий оболочки POSIX для вызова вашего приложения

  3. В скрипте укажите ваши библиотеки, установив LD_LIBRARY_PATH соответственно

1

Другие решения


По вопросам рекламы [email protected]