У меня трудные времена при создании инструментов командной строки, написанных на C ++, чтобы они могли выполняться как версиями Ubuntu для i386, так и для amd64 (в идеале и для других дистрибутивов, но это не так важно). Он будет распространяться на USB-ключе, поэтому я не могу контролировать упаковку.
Мой инструмент командной строки также должен воспроизводить аудио из буфера, поэтому я использую PulseAudio Simple для воспроизведения аудио буферов.
Обратите внимание, что мой исполняемый файл отлично работает на моей машине для разработки. Проблемы возникают, когда я копирую его на USB-ключ и запускаю на других машинах. Там, как только я запускаю свой исполняемый файл, я получаю ошибку «Файл не найден» от bash; из того, что я узнал, это должно быть из-за отсутствия пакета libpulse-dev (и, следовательно, библиотеки, которая динамически связана) на целевой машине.
Итак, я спрашиваю: что я должен делать? Я пытался создать 32-битную статическую PulseAudio, но потом я даже не могу заставить ее скомпилировать, и, честно говоря, я не знаю, что еще попробовать. Есть ли другой способ, кроме статического связывания, для развертывания общих библиотек с моим приложением на USB-ключе?
Спасибо
ldd your_app
чтобы получить список соответствующих библиотек.Сделайте предпочтительный сценарий оболочки POSIX для вызова вашего приложения
В скрипте укажите ваши библиотеки, установив LD_LIBRARY_PATH соответственно