4

Crystal スクリプトのコンパイル済みバージョンを取得して、独自の __FILE__ を取得するにはどうすればよいですか。ここに例があります。~/test.cr というファイルがあり、次の内容が含まれています。

puts __FILE__

Crystal経由でスクリプトをコンパイルします

~$ crystal ~/test.cr -o ~/test.compiled

次に ~/test.compiled を実行します。私が結果を出す

/Users/Account1/test.cr

__FILE__ は実際には

/Users/Account1/test.compiled

生成させる方法はありますか

/Users/Account1/test.compiled

それ以外の

/Users/Account1/test.cr
4

1 に答える 1

7

メタ定数__FILE__は、実行可能ファイルではなく、常にソース ファイルを指します。ただし、 を使用$0して現在の実行可能パス (または を使用してフル パスFile.expand_path)を取得できます。

foo.cr:

puts $0
puts File.expand_path($0)

次に、コンパイルして実行します。

$~ crystal build foo.cr
$~ ./foo
./foo
/Users/MyUser/foo
于 2016-03-17T12:26:51.630 に答える