2013-03-14 4 views
0

есть проблема с сжатием моего скрипта.Скомпилировать ruby-скрипт с зависимостями от других классов

У меня есть main.rb и некоторые классы в подпапках как вложенные/Class.rb В моем main.rb, у меня есть классы, объявленные как это:

требует»./Subfolder/Class.rb '

Когда я просто запускаю свой основной скрипт, он работает. Также мой exe работает, когда он находится в том же месте, что и main.rb.
Но когда я ставлю ехе где-то еще, я получаю эту ошибку:

C:/Users/MLEING~1/AppData/Local/Temp/ocr53C2.tmp/lib/ruby/site_ruby/1.9.1/rubyge 
ms/custom_require.rb:36:in `require': cannot load such file -- ./Parsing/Calibra 
tionState (LoadError) from C:/Users/MLEING~1/AppData/Local/Temp/ocr53C2.tmp/lib/ruby/site_ruby 
/1.9.1/rubygems/custom_require.rb:36:in `require' 
    from C:/Users/MLEING~1/AppData/Local/Temp/ocr53C2.tmp/src/main.rb:9:in ` 
<main>' 

Могу ли я каким-то образом поставить зависимостей в мой ехе?
Я также попытался включить их так:

ocra main.rb Subfolder/*.rb 

Но это не помогает.

ответ

-1

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

Вместо этого попробуйте:

требует „Subfolder/Class.rb“

И убедитесь, что в $ LOAD_PATH включено место, где весь ваш рубиновый код распакован (на который вы можете посмотреть, просмотрев $ 0 (или выяснить полный путь от $ 0 и потребовать .rb с полным путем)

+0

Почему downvote? ocra может распаковать библиотеки в другой pa th, чем он устанавливает текущий каталог (как и мой опыт), а затем правильно установите LOAD_PATH. Таким образом, «./» в начале запроса может испортить все, поскольку он не позволяет перемещать библиотеки. Изготовление драгоценного камня прекрасное и все, но не обязательно, потому что вы хотите использовать код в окре. –

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