gpt4 book ai didi

compilation - 如何编译 Julia 脚本?

转载 作者:行者123 更新时间:2023-12-03 10:05:22 26 4
gpt4 key购买 nike

我注意到 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)

最佳答案

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

function foo()
print(123)
end

precompile(foo, ())

julia/base/userimg.jlinclude("/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
  • 关于compilation - 如何编译 Julia 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34146968/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com