2017-02-15 10 views
-3

Rubyにはまったく新しいものではありませんが、それほど習熟していません。私の目標は、 をRubyと同様の状態に設定することです。これは、Tclで実行しているのと同じように、言語をダウンロードしてインストールするのに を必要としないスクリプトを実行しています。これは、 ツールコマンド言語(Tcl)でかなりうまくいきます。Tcl3dsh-win32-0.5.0スターパックを使用して、ほとんどすべてのTclアプリケーションを で実行しています。これは、以前のTclインストールの必要性がなくなりました。 windows10私は推測する。なぜ、私はRuby1.8.6をOpenGL とGlutライブラリのために必要としたのですか?それは、おそらく、rubyscript2exeインタープリタ - バンドラ - コンパイラの入手に関して、 のどこかのリンクから参照されていたと思いますか? を使用してください。新しいRubyインストールのためにrubyscript2exeが古くなっていることは私の理解です。 私はこれを作成して実行可能なバンドルされたものを何も得られませんでした。 私は 'ocra'を試しました。これは、ただ1つのexeを作成しなければなりません: puts 'Hello ocra ruby​​'。 sleep 4.5 ルビーインストールがないwindows10システムにエクスポートされたときに実際に が実行された、実行可能なルックアップのようなアプリケーションを作成しました。 その時点で、Rubyを作成していた開発マシンでその時点で終了しました 実行可能なアプリケーションのバージョン「ruby193」VIAワンクリックインストーラ実行可能ファイル TKに含まれるすべてのオプションと関連付けが選択されています。 これは、 'ruby193'というディレクトリのC:ルートにインストールされました。そこには、 'ocra' gem(と 'rubyscript2exe')を参照しているバッチファイルやその他のファイルがあります。 Ocraの実行可能なRubyアプリケーションは、デスクトップから実行されたものと、実行されなかったものがあります。 'start'コマンドで作成したコマンドラインコンソールを使用して.batファイルに書き込みました。 コマンドラインのもの。 'hello world' .rbは動作しましたが、tkのものは何も投げませんでした: 'Tk85.dllが見つかりませんでしたエラーです'。私が冒険のあらゆる細部のメモを取るべきであるように、エラーであることはかなり肯定的でした。 は科学的ではありませんでした。 これは、 'ruby186バージョンで使用する'アドバイスを参照して、 'rubyscript2exe' gem no luckを試してみました。 私はOpenGLのRubyアプリケーションがしばらく走っているのを見たことがありません。 ruby186を既存のruby193の上部 にダウンロードした。ruby186ワンクリックインストーラ実行ファイル。 のディレクトリにある 'ruby193'ディレクトリのルートにビルドされました。インストール中にTkのインストール の関連付けやバインディングがないことに注意してください。これは自分自身に言ってもうまくいきません。 私は(私にとってはうまくいかなかった)に従ったドキュメントに、Tk特有のコンパイルインストラクションを持つ 'rubyscript2exe'アプリケーションを覚えています。オクラの文書をもう一度読み直しましたが、私はTk特有のものを参照していません。おそらく、 ライブラリを追加して、私はそれを逃していると述べましたが、私はこれでほとんど堪能ではありませんが、本当に頑張っています。RubyをインストールしないでRubyscを実行する

私の質問:Tk GUIを実行できる windows-10-ishシステム上で動作するruby実行可能プログラムの作成をどのように進めるべきですか(私はTk GUIで始めるでしょう。私はこれを起動して実行します。 次にOpenGL GLUTシェーダの試しに進むことができます)。 Tkは最新のものでなければならないので、 私の焦点はTkで動作するようにocraの宝石を手に入れようとしていたのですが、私はstart.batの コンソールで、ocraのドキュメントの指示に従ってコンソールをコンパイルしました:https://github.com/larsch/ocrahttp://ocra.rubyforge.org/ ocra whaverscript。rb と私が思った 'rubyscript2exe' + '-ocra-tk'を使ったときのやり方と似たような変形がありました。 iddaは私が何をしたのかを知ってしまいました。何かご意見は?

初めて投稿された質問ですが、 を徹底的に試してみると、私の未熟さとその冗長性を許してください。

+2

私はこの質問を見てめまいを得た:

は、ここに私のTkのテストアプリケーションです。これを実際のコードが含まれている小さな質問に沸かせることはできますか? – tadman

+0

コード:ocra whateverscript.rb、私のコンパイルコードがあります、あなたは何を望みますか、機能的なruby tkスクリプト全体ですか?私はそれが私の質問に関係するとは思わなかった。 –

+0

Stack Overflowについて質問しているのであれば、コードは常に*あなたの質問に関連しているか、最初は質問のための適切なフォーラムではありません。 – tadman

答えて

1

バージョンマネージャーを使用しないで同じシステム上で複数のバージョンのrubyを使用していることが原因で問題が発生する可能性があります。複数のバージョンのルビーが同じシステム上に存在する場合、それらの宝石と依存関係はすべての十字線を越えてひどい問題を引き起こす可能性があります。 Windowsでは

、私はウルとの幸運を持っていた:https://bitbucket.org/jonforums/uru

また、あなたは特定のプロジェクトや特定のルビーバージョンにカプセル化し、それらを維持するバンドル宝石を使用して宝石を、インストールを検討することをお勧めします。すべてが言われている

、あなたのスクリプトは自己完結型の実行可能ファイルとして実行するために取得したいが、依存関係やルビーのバージョンに問題がある場合は、旅行ルビーをチェックアウト:

http://phusion.github.io/traveling-ruby/

それは動作しますすべてのスクリプトが適切なバージョンのrubyでラップされているので、ユーザは何もインストールする必要はなく、コンパイルやシステムにrubyをインストールする必要はありません。

+0

ありがとうございます。私はRuby-exeビルドマシンからライブラリを取り戻し、これらのことをいくつか試してみましょう。再び、多くのありがとう。 –

+0

私の謝罪が遅れてRubyScript.exe作成環境が失われました。 東芝、64ビット、Windows10 proで再設定しました。 Rubyを使う: ruby​​ 2.3.3p222(2016-11-21 revision 56859)[i386-mingw32] 私は、このTk以外のコンソールアプリケーションスクリプトをocraを使ってビルドしました: –

0

私は謝罪してくれました。私のRubyScript.exe作成環境が失われました。 東芝、64ビット、Windows10 proで再設定しました。ルビーを使用して: ルビー2.3.3p222(2016年11月21日リビジョン56859)[I386-MINGW32] を私はOCRAを構築するために、この非Tkのコンソールアプリケーションを得た:

コマンドを使用して
enter code here 
irb 

enter code here 
ocra throwRUBYconsole.rb 

Windows端末の 'start'.bat形式で、デスクトップ上ではもちろん、私の非ルビー環境マシンでは が動作しません(ゲートウェイと同じwin 10)。 ocraのドキュメントを読む、 ocraソース。読書旅行ルビー、同じ。 Darb、rubyscript2exe、 exerb to thru、これは少し時間がかかるでしょう。

enter code here 
require 'tk' 
require 'tkextlib/tile' 

root = TkRoot.new {title "Lightyears to Parsecs"} 
content = Tk::Tile::Frame.new(root) {padding "3 3 12 12"}.grid(:sticky =>  'nsew') 
TkGrid.columnconfigure root, 0, :weight => 1; TkGrid.rowconfigure root, 0, :weight => 1 

$lightyears = TkVariable.new; $parsecs = TkVariable.new 
f = Tk::Tile::Entry.new(content) {width 13; textvariable $lightyears}.grid( :column => 2, :row => 1, :sticky => 'we') 
Tk::Tile::Label.new(content) {textvariable $parsecs}.grid(:column => 2, :row => 2, :sticky => 'we'); 
Tk::Tile::Button.new(content) {text 'Calculate'; command {calculate}}.grid( :column => 3, :row => 3, :sticky => 'w') 

Tk::Tile::Label.new(content) {text 'lightyears'}.grid(:column => 3, :row => 1, :sticky => 'w') 
Tk::Tile::Label.new(content) {text 'is equivalent to'}.grid(:column => 1, :row => 2, :sticky => 'e') 
Tk::Tile::Label.new(content) {text 'parsecs'}.grid(:column => 3, :row => 2, :sticky => 'w') 

TkWinfo.children(content).each {|w| TkGrid.configure w, :padx => 5, :pady => 5} 
f.focus 
root.bind("Return") {calculate} 

def calculate 
    begin 
    $parsecs.value = (0.30659458*$lightyears*10000.0).round()/10000.0 
    rescue 
    $parsecs.value = '' 
    end 
end 

Tk.mainloop 
関連する問題