2016-05-07 5 views
2

Я пишу приложение, которое использует taglib-ruby, что в свою очередь зависит от Taglib. Чтобы пользователь не загружал и не устанавливал taglib самостоятельно, я хочу связать его с моим приложением. У меня нет большого опыта делать такого рода вещи, но мое чувство, что мне нужно сделать следующее:Связывание taglib с taglib-ruby

  1. Compile TagLib в папку в моем приложении
  2. Compile TagLib-рубинового, указывая его местные библиотеки тегов из предыдущего шага

проблема я бегу в том, что rake clean compile на шаге 2 завершается с ошибкой:

checking for main() in -ltag... no

You must have taglib installed in order to use taglib-ruby.

Если я просто brew install taglib, тогда шаг 2 работает без проблем. Я пробовал шаг 1 двумя способами: 1) просто скопировав установленные файлы из каталога Cellar Homebrew после запуска brew install и 2) Загрузив и запустив cmake на извлеченное содержимое одного из файлов tar на Taglib's website.

Поскольку эта ошибка, очевидно, свидетельствует о том, что rake clean compile не могу найти, не Homebrew установленную версию TagLib, я попытался отредактировать переменную opt_dirs в extconf_common.rb файл в TagLib-рубин, но не повезло.

Как я могу получить taglib-ruby для использования локально установленной версии Taglib?

ответ

0

Я думаю, что вам лучше не связывать зависимость, если это необходимо.

Там несколько причин:

  1. Зависимость должна быть строить по-разному для разных платформ. Гораздо проще направить пользователей на apt-get/brew install taglib, чем включить последнюю сборку для всех системных архитектур, а затем попытаться определить, какой из них установить.
  2. Зависимость может не обновляться, если она не установлена ​​через диспетчер пакетов.

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

См. Detecting Operating Systems in Ruby

 Смежные вопросы

  • Нет связанных вопросов^_^