スタンドアロンのRubyスクリプトをスタンドアロンのAOTコンパイル済みmacruby実行可能ファイルにコンパイルするにはどうすればよいですか?
配布可能なコマンドラインツールをMacRubyで作成したいと思います。
スタンドアロンのRubyスクリプトをスタンドアロンのAOTコンパイル済みmacruby実行可能ファイルにコンパイルするにはどうすればよいですか?
配布可能なコマンドラインツールをMacRubyで作成したいと思います。
macrubyc
あなたの友達です。端末での単純な hello world の例:
chris$ echo 'puts("Hello, world!")' > hello.rb
chris$ macrubyc hello.rb -o hi
chris$ ./hi
Hello, world!
chris$ file hi
hi: Mach-O 64-bit executable x86_64
chris$
心に留めておくべきことがいくつかありますが、最も重要なことは、バイナリがリンクする macruby ランタイムを必要とすることです。あなたのマシンでは、上記のように 'hi' プログラムを実行するだけで済みますが、macruby をインストールせずに Mac に配布する場合は、実行可能ファイルに静的にコンパイルする必要があります。
詳細については、macrubyc のマンページを参照してください。
従来の方法は、コマンド ライン ユーティリティをコンパイルされていない ruby スクリプトとして提供することです。接頭辞を付けると
#!/usr/bin/env macruby
実行可能ファイルを設定します
$ chmod a+x myfile.rb
その後、ユーザーの観点からは、バイナリであるかのように実行されます。