Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ruby-serialport, Ошибка при установке гема 
:(
    Опции темы
freeneutron
Дата 19.7.2011, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.7.2011

Репутация: нет
Всего: нет



Установил Ruby под ХР, разобрался с гемами, установил SciTE. Из последнего запускаю команду:
Код
 ruby D:/Ruby192/bin/gem install fxruby

получаю:
Код
 Successfully installed fxruby-1.6.20-x86-mingw32

потом, запускаю команду:
Код
 ruby D:/Ruby192/bin/gem install ruby-serialport

получаю:
Код
ERROR:  Error installing ruby-serialport:
    ERROR: Failed to build gem native extension.

        d:/Ruby192/bin/ruby.exe extconf.rb


Gem files will remain installed in d:/Ruby192/lib/ruby/gems/1.9.1/gems/ruby-serialport-0.7.0 for inspection.
Results logged to d:/Ruby192/lib/ruby/gems/1.9.1/gems/ruby-serialport-0.7.0/ext/gem_make.out
Building native extensions.  This could take a while...

Точно такая же ошибка возникает при установке ruby-usb и ribusb. Подскажите, пожалуйста, в чем проблема?
PM MAIL   Вверх
source777
Дата 21.7.2011, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 6
Всего: 56



Есть gem-пакеты, которые работают через native extensions, т.е. через системные библиотеки .so или .dll. Для установки таких gem-пакетов нужны соответствующие заголовочные файлы.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
enRai
Дата 22.7.2011, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.12.2010

Репутация: нет
Всего: нет



руби в виндоус? как вы его там вообще запустили?
(сарказм)
PM MAIL   Вверх
freeneutron
Дата 23.7.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.7.2011

Репутация: нет
Всего: нет



Цитата(enRai @ 22.7.2011,  23:34)
руби в виндоус? как вы его там вообще запустили?
(сарказм)

Да, Виндовс + заглюченная командная строка. Тем не менее, кое-что работает.

Цитата(source777 @ 21.7.2011,  19:08)
Есть gem-пакеты, которые работают через native extensions, т.е. через системные библиотеки .so или .dll. Для установки таких gem-пакетов нужны соответствующие заголовочные файлы.

С данной проблемой я разобрался. Нужен был devkit и рабочий интерпретатор bat-файлов. Но как-то мало в сети информации на русском о native extensions. И совсем не понятно, брать ответы на такие вопросы как:
Какие еще типы расширений используются в Ruby-сообществе?
Как обстоят дела с переносом расширений на другую платформу?

Это сообщение отредактировал(а) freeneutron - 23.7.2011, 10:32
PM MAIL   Вверх
source777
Дата 23.7.2011, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1878
Регистрация: 12.3.2007

Репутация: 6
Всего: 56



Цитата(freeneutron @  23.7.2011,  10:31 Найти цитируемый пост)
Но как-то мало в сети информации на русском о native extensions

А что именно интересует то? Чтобы их устанавливать никакой особой информации не нужно или ты сам собрался такие gem-пакеты писать?


Цитата(freeneutron @  23.7.2011,  10:31 Найти цитируемый пост)
Какие еще типы расширений используются в Ruby-сообществе?

Не понял вопроса... Практически для любого, а особенно ярко это заметно для интерпретируемых, языка программирования есть 2 типа библиотек: pure название_языка и with native extensions. Первые пишутся исключительно на самом языке. А вторые используют системные библиотеки, чаще всего сишные.


Цитата(freeneutron @  23.7.2011,  10:31 Найти цитируемый пост)
Как обстоят дела с переносом расширений на другую платформу?

pure-ruby gems работают везде, где работает ruby.
gems with native extensions работают везде, где работает ruby и используемые нативные библиотеки.


--------------------
Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте
PM MAIL   Вверх
freeneutron
Дата 26.7.2011, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 18.7.2011

Репутация: нет
Всего: нет



Проблема с предидущей ошибкой вылечилась путем установки второй винды, так как в старой bat-файлы у меня по непонятной причине уже давно не запускаются.
Из всех гемов, предназначенных для работы с сериалпортом, у меня установился только serialport. И вот чего мне удалось от этого гема получить. 
Во-первых, я пытаюсь использовать этот скрипт. В нем я поправил значения констант SMSC и destination_number, заменил 
p = GSM.new(:debug => false) на
p = GSM.new(:debug => false, :port => 'COM1')
Потом запустил скрипт, а он повис. Висел до тех пор, пока я не нажал Ctrl+Break. Продолжив эксперименты, я выяснил, что повисание начинается со строки:
    cmd("AT")
Если перед этой строкой я ставлю return, то повисание проходит, а скрипт, естественно, ни чего не делает.
Почему я использовал :port => 'COM1'?
user posted image
Здесь видно, что этот порт используется системой. Так же видно, что системой используются порты COM20, COM21 и COM22. Когда я использую COM20, COM21 или COM22 вместо COM1, то скрипт заканчивается ошибкой такого плана:
serialport.rb:16:in `create': Invalid argument - \\.\COM20 (Errno::EINVAL)
Когда я использую имя свободного порта, например COM19, то ошибка такая:
serialport.rb:16:in `create': No such file or directory - \\.\COM19 (Errno::ENOENT)
В общем очередной тупик, как выходить из которого, я пока что понятия не имею.

Это сообщение отредактировал(а) freeneutron - 26.7.2011, 17:16
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby: Общие вопросы"
source777
  • С чего начать? начинаем
  • Ссылки на полезные ресурсы смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0747 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.