2016-10-11 8 views
0

Я пытаюсь установить taglib-ruby для Ruby на Windows, но я не могу понять, как сообщить установщику gem, где искать мою копию taglib. Установщик смотрит в/usr/local/и другие подобные места, но это компьютер Windows, эти местоположения не существуют и поэтому я не могу просто переместить туда taglib. Я видел this post на странице github для драгоценного камня, в котором говорится, что вы указываете местоположение в этом формате: CONFIGURE_ARGS="--with-opt-dir=Path/to/taglib" gem install taglib-ruby, но это не работает в Windows PowerShell. Я также пробовал эту формулировку: gem install taglib-ruby -- 'CONFIGURE_ARGS="--with-opt-dir=Path/to/taglib/"'. Но он также не работает.Установка метки taglib-ruby на Windows

Сообщение об ошибке я вижу:

Temporarily enhancing PATH to include DevKit... Building native 
extensions with: '--with-opt-dir=/hi/' This could take a while... 
ERROR: Error installing taglib-ruby: 
     ERROR: Failed to build gem native extension. 

current directory: C:/XXXXXXX/taglib_base C:/XXXXX/ruby.exe -r ./siteconf20161010-10032-1260rq7.rb extconf.rb --with-opt-dir=/hi/ 
checking for main() in -lstdc++... yes 
checking for main() in -ltag... no 
You must have taglib installed in order to use taglib-ruby. 

Debian/Ubuntu: sudo apt-get install libtag1-dev 
Fedora/RHEL: sudo yum install taglib-devel 
Brew: brew install taglib 
MacPorts: sudo port install taglib 

*** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check 
the mkmf.log file for more details. You may need configuration options. 

Provided configuration options: 
    --with-opt-dir 
    --with-opt-include 
    --without-opt-include=${opt-dir}/include 
    --with-opt-lib 
    --without-opt-lib=${opt-dir}/lib 
    --with-make-prog 
    --without-make-prog 
    --srcdir=. 
    --curdir 
    --ruby=C:/Ruby23-x64/bin/$(RUBY_BASE_NAME) 
    --with-tag-dir 
    --without-tag-dir 
    --with-tag-include 
    --without-tag-include=${tag-dir}/include 
    --with-tag-lib 
    --without-tag-lib=${tag-dir}/lib 
    --with-stdc++lib 
    --without-stdc++lib 
    --with-taglib 
    --without-taglib 

To see why this extension failed to compile, please check the mkmf.log 
which can be found here:... 

Вы можете видеть, что --with-неавтоматического реж вариант, но он не установлен, даже если вызов показывает, что это было. Любые идеи о том, как это сделать?

Примечание: Я также попытался установить переменные окружения для «with-opt-dir» и «CONFIGURE_ARGS», но они также потерпели неудачу.

ответ

0

Я столкнулся с подобной проблемой и спросил сопровождающего через GitHub. Вы правы, что проблема связана с тем, что встроенная сборка расширений не может найти вашу установку TagLib. Я смог исправить это, переместив TagLib в место, в котором не было пробелов в пути (по умолчанию C:\Program Files (x86)\taglib, поэтому я переместил его на C:\lib\taglib) и опустил кавычки при настройке переменной окружения with-tag-dir. Я не уверен, имеет ли смысл использовать предпочтительный разделитель папок Ruby, но я это сделал.

В командной строке:

> set CONFIGURE_ARGS="--with-tag-dir=C:/lib/taglib-1.9.1" 
> echo %CONFIGURE_ARGS% 
    "--with-tag-dir=C:/lib/taglib-1.9.1" 
> gem install taglib-ruby