juliaをコンパイルして実行可能ファイルを作る

juliaで書いたコードをコンパイルし、実行可能なファイルにしてくれるライブラリを見つけた。
以下、githubのREADMEを参考に使ってみたときの手順をまとめている。

まず、このサンプルを元に実行ファイルを作成する。

module Hello

Base.@ccallable function julia_main(ARGS::Vector{String})::Cint
    println("hello, world")
    return 0
end

end

次に、これをPackageCompilerを使用してコンパイルする。
build_executable関数について、第一引数がコンパイルしたいファイルへのパス、第二引数がコンパイル後の実行ファイル名になる。

$ julia -e 'using PackageCompiler; build_executable("hello.jl", "hello")'

これを実行すると自動的にbuilddirというディレクトリが作られ、この中に成果物が格納される。
builddirの中には、コンパイルされたファイルを実行するための各種ライブラリも置かれている。

$ ./builddir/hello
hello, world

このライブラリについては、他にもライブラリを作ったりできるようなのだが、いかんせんドキュメントが少ない。
これからいろいろ試してみようと思っている。


参考

github.com

myenigma.hatenablog.com