当前位置:  开发笔记 > 运维 > 正文

如何编译julia脚本?

如何解决《如何编译julia脚本?》经验,为你挑选了1个好方法。

我注意到julia版本0.4.*有一个--compile选项.

奇怪的是,我找不到任何关于它的文档.

我正在尝试(在Ubuntu中)将julia脚本编译为可执行的LLVM字节码文件.但直到这里,我失败了:

julia --compile=yes --output-bc test.bc test.jl
Segmentation fault (core dumped)

我也可以收到此错误消息:

julia --compile=yes --output-bc test.bc test.jl
ERROR: could not open file boot.jl

如果我将boot.jl文件放在同一文件夹中,则不会再出现此错误.

如何将julia脚本编译为可执行/混淆的字节码?

编辑:仅供参考,我的test.jl文件仅包含print(123)



1> Isaiah Norto..:

这是一个例子,来自OS X上的julia源代码,/ tmp/test.jl为:

function foo()
    print(123)
end

precompile(foo, ())

julia/base/userimg.jl作为include("/tmp/test.jl")

julia/base目录中执行以下命令:

julia --compile=yes --output-bc test.bc -J ../usr/lib/julia/inference.ji sysimg.jl

然后跑llvm-dis test.bc -o test.ll.在(巨大的)图像中的某处,我们有测试函数的相关字节码:

define internal %jl_value_t* @julia_foo_22542() {
top:
  %0 = alloca [4 x %jl_value_t*], align 8, !dbg !51528 
...

也就是说,截至目前(2015年12月),Julia无法用于提前编译独立的可执行文件.但是,以下内容可能会引起关注:

https://github.com/dhoegh/BuildExecutable.jl(目前尚未使用--output-bc,但具有更好的用户界面,并且该选项很容易添加)

https://github.com/JuliaLang/julia/pull/13677

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有