Как я могу скомпилировать Unix-программу и ее зависимости в один исполняемый файл на Mac OS X? - PullRequest
2 голосов
/ 26 ноября 2011

После того, как я набрал brew install pianobar из Терминала для установки pianobar, я могу отлично запустить его из моего Терминала.

Я перехожу на /usr/local/Cellar/pianobar/2011.11.11/bin и копирую исполняемый файл pianobar на рабочий стол.Это также работает, когда я дважды щелкаю по нему.

Затем я делаю копию на моем другом Mac, не предназначенном для разработки (XCode не установлен), и пытаюсь выполнить его, он говорит dyld: Library not loaded: /usr/local/lib/libao.4.dylib.

Я знаю, что pianobar имеет такие зависимости:

depends_on 'libao'
depends_on 'mad'
depends_on 'faad2'
depends_on 'gnutls'

Эти зависимости динамически связаны с исполняемым файлом на моем первом Mac, поэтому pianobar не может работать с другим, если эти зависимости не установлены.

Мой вопрос: как мне собрать все эти зависимости в один исполняемый файл, чтобы я мог легко распространить его на мой другой Mac?

1 Ответ

0 голосов
/ 26 ноября 2011

Существует несколько, но, вероятно, слишком сложных способов достижения этого, например:

  • создайте пакет установщика MacOS X (используя PackageMaker.app) и убедитесь, что все библиотеки там тоже есть
  • собрать все вручную и распространять как ZIP

Намного проще просто установить homebrew на второй Mac и установить там пианобар.

...