GLMakie 无法编译成功

我在安装 GLMakie 这个库的时候, 总是卡在编译这个地方. 无任何报错, 但是编译一个小时也没有结果, 我强行关掉 Julia, 再使用这个库也是卡在编译这个地方. 我目前以及试了 rm 这个库再重装, 或者 Pkg.build("GLMakie") 等操作, 都无法生效, 还是会一直卡在编译阶段, 请问有什么解决方法吗?

这是编译的compiled文件夹:


还有这是卡住的代码:

julia> using GLMakie
[ Info: Precompiling GLMakie [e9467ef8-e4e7-5192-8a1a-b1aee30e663a]

我arm的windows都能成功。你先试试管理员权限的powershell 或 WSL 也行

谢谢, 这次重新装有了报错:

┌ GLMakie [e9467ef8-e4e7-5192-8a1a-b1aee30e663a]
│  ┌ Warning: downloading texture atlas failed, need to re-create from scratch.
│  │   exception =
│  │    RequestError: HTTP/1.1 302 Found (SSL/TLS connection timeout) while requesting https://github.com/MakieOrg/Makie.jl/releases/download/v0.19.0/v4_texture_atlas_2048_64.bin
│  │    Stacktrace:
│  │      [1] (::Downloads.var"#9#18"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Nothing, Bool, String, Bool, Bool})(easy::Downloads.Curl.Easy)
│  │        @ Downloads C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Downloads.jl:388
│  │      [2] with_handle(f::Downloads.var"#9#18"{IOStream, Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Nothing, Bool, String, Bool, Bool}, handle::Downloads.Curl.Easy)
│  │        @ Downloads.Curl C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Curl\Curl.jl:90
│  │      [3] #8
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Downloads.jl:329 [inlined]
│  │      [4] arg_write(f::Downloads.var"#8#17"{Base.DevNull, Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Nothing, Bool, String, Bool, Bool}, arg::IOStream)
│  │        @ ArgTools C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\ArgTools\src\ArgTools.jl:134
│  │      [5] #7
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Downloads.jl:328 [inlined]
│  │      [6] arg_read
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\ArgTools\src\ArgTools.jl:76 [inlined]
│  │      [7] request(url::String; input::Nothing, output::IOStream, method::Nothing, headers::Vector{Pair{String, String}}, timeout::Float64, progress::Nothing, verbose::Bool, debug::Nothing, throw::Bool, downloader::Nothing)
│  │        @ Downloads C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Downloads.jl:327
│  │      [8] request
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Downloads.jl:295 [inlined]
│  │      [9] #3
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Downloads.jl:233 [inlined]
│  │     [10] open(f::Downloads.var"#3#4"{Nothing, Vector{Pair{String, String}}, Float64, Nothing, Bool, Nothing, Nothing, String}, args::String; kwargs::Base.Pairs{Symbol, Bool, Tuple{Symbol, Symbol}, NamedTuple{(:write, :lock), Tuple{Bool, Bool}}})
│  │        @ Base .\io.jl:395
│  │     [11] #open_nolock#1
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\ArgTools\src\ArgTools.jl:35 [inlined]
│  │     [12] open_nolock
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\ArgTools\src\ArgTools.jl:35 [inlined]
│  │     [13] arg_write(f::Function, arg::String)
│  │        @ ArgTools C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\ArgTools\src\ArgTools.jl:103
│  │     [14] #download#2
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Downloads.jl:232 [inlined]
│  │     [15] download
│  │        @ C:\Users\Administrator\AppData\Local\Programs\Julia-1.9.1\share\julia\stdlib\v1.9\Downloads\src\Downloads.jl:221 [inlined]
│  │     [16] cached_load(resolution::Int64, pix_per_glyph::Int64)
│  │        @ Makie C:\Users\Administrator\.julia\packages\Makie\XrIti\src\utilities\texture_atlas.jl:167
│  │     [17] #49
│  │        @ C:\Users\Administrator\.julia\packages\Makie\XrIti\src\utilities\texture_atlas.jl:156 [inlined]
│  │     [18] get!(default::Makie.var"#49#50"{Int64, Int64}, h::Dict{Tuple{Int64, Int64}, Makie.TextureAtlas}, key::Tuple{Int64, Int64})
│  │        @ Base .\dict.jl:468
│  │     [19] get_texture_atlas
│  │        @ C:\Users\Administrator\.julia\packages\Makie\XrIti\src\utilities\texture_atlas.jl:155 [inlined]
│  │     [20] gl_texture_atlas
│  │        @ C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\GLMakie.jl:48 [inlined]
│  │     [21] (::GLMakie.var"#211#222"{GLMakie.Screen{GLFW.Window}, Makie.Scene, MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}}})(gl_attributes::Dict{Symbol, Any})
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\drawing_primitives.jl:345
│  │     [22] (::GLMakie.var"#177#180"{GLMakie.var"#211#222"{GLMakie.Screen{GLFW.Window}, Makie.Scene, MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}}}, GLMakie.Screen{GLFW.Window}, Makie.Scene, MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}}})()
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\drawing_primitives.jl:135
│  │     [23] get!(default::GLMakie.var"#177#180"{GLMakie.var"#211#222"{GLMakie.Screen{GLFW.Window}, Makie.Scene, MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}}}, GLMakie.Screen{GLFW.Window}, Makie.Scene, MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}}}, h::Dict{UInt64, GLMakie.GLAbstraction.RenderObject}, key::UInt64)
│  │        @ Base .\dict.jl:468
│  │     [24] cached_robj!(robj_func::GLMakie.var"#211#222"{GLMakie.Screen{GLFW.Window}, Makie.Scene, MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}}}, screen::GLMakie.Screen{GLFW.Window}, scene::Makie.Scene, x::MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}})
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\drawing_primitives.jl:103
│  │     [25] draw_atomic
│  │        @ C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\drawing_primitives.jl:337 [inlined]
│  │     [26] insert!(screen::GLMakie.Screen{GLFW.Window}, scene::Makie.Scene, x::MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}})
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\drawing_primitives.jl:151
│  │     [27] (::GLMakie.var"#183#184"{GLMakie.Screen{GLFW.Window}, Makie.Scene})(x::MakieCore.Text{Tuple{Vector{Makie.GlyphCollection}}})
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\drawing_primitives.jl:156
│  │     [28] foreach(f::GLMakie.var"#183#184"{GLMakie.Screen{GLFW.Window}, Makie.Scene}, itr::Vector{MakieCore.AbstractPlot})
│  │        @ Base .\abstractarray.jl:3073
│  │     [29] insert!(screen::GLMakie.Screen{GLFW.Window}, scene::Makie.Scene, x::MakieCore.Text{Tuple{Vector{GeometryBasics.Point{2, Float32}}}})
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\drawing_primitives.jl:153
│  │     [30] insertplots!(screen::GLMakie.Screen{GLFW.Window}, scene::Makie.Scene)
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\screen.jl:447
│  │     [31] insertplots!(screen::GLMakie.Screen{GLFW.Window}, scene::Makie.Scene)
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\screen.jl:450
│  │     [32] display_scene!(screen::GLMakie.Screen{GLFW.Window}, scene::Makie.Scene)
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\screen.jl:379
│  │     [33] GLMakie.Screen(scene::Makie.Scene, config::GLMakie.ScreenConfig; visible::Nothing, start_renderloop::Bool)│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\screen.jl:396
│  │     [34] GLMakie.Screen(scene::Makie.Scene, config::GLMakie.ScreenConfig)
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\screen.jl:392
│  │     [35] getscreen(::Module, ::Makie.Scene; screen_config::Base.Pairs{Symbol, Bool, Tuple{Symbol, Symbol}, NamedTuple{(:start_renderloop, :visible), Tuple{Bool, Bool}}})
│  │        @ Makie C:\Users\Administrator\.julia\packages\Makie\XrIti\src\display.jl:408
│  │     [36] getscreen
│  │        @ C:\Users\Administrator\.julia\packages\Makie\XrIti\src\display.jl:391 [inlined]
│  │     [37] colorbuffer(fig::Makie.FigureAxisPlot, format::Makie.ImageStorageFormat; update::Bool, backend::Module, screen_config::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
│  │        @ Makie C:\Users\Administrator\.julia\packages\Makie\XrIti\src\display.jl:438
│  │     [38] colorbuffer
│  │        @ C:\Users\Administrator\.julia\packages\Makie\XrIti\src\display.jl:434 [inlined]
│  │     [39] colorbuffer(fig::Makie.FigureAxisPlot)
│  │        @ Makie C:\Users\Administrator\.julia\packages\Makie\XrIti\src\display.jl:434
│  │     [40] top-level scope
│  │        @ C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\precompiles.jl:7
│  │     [41] include(mod::Module, _path::String)
│  │        @ Base .\Base.jl:457
│  │     [42] include
│  │        @ C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\GLMakie.jl:1 [inlined]
│  │     [43] macro expansion
│  │        @ C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\precompiles.jl:23 [inlined]
│  │     [44] macro expansion
│  │        @ C:\Users\Administrator\.julia\packages\PrecompileTools\kmH5L\src\workloads.jl:78 [inlined]
│  │     [45] macro expansion
│  │        @ C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\precompiles.jl:16 [inlined]
│  │     [46] macro expansion
│  │        @ C:\Users\Administrator\.julia\packages\PrecompileTools\kmH5L\src\workloads.jl:140 [inlined]
│  │     [47] top-level scope
│  │        @ C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\precompiles.jl:14
│  │     [48] include(mod::Module, _path::String)
│  │        @ Base .\Base.jl:457
│  │     [49] include(x::String)
│  │        @ GLMakie C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\GLMakie.jl:1
│  │     [50] top-level scope
│  │        @ C:\Users\Administrator\.julia\packages\GLMakie\CUelo\src\GLMakie.jl:59
│  │     [51] include
│  │        @ .\Base.jl:457 [inlined]
│  │     [52] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::Nothing)
│  │        @ Base .\loading.jl:2045
│  │     [53] top-level scope
│  │        @ stdin:3
│  │     [54] eval
│  │        @ .\boot.jl:370 [inlined]
│  │     [55] include_string(mapexpr::typeof(identity), mod::Module, code::String, filename::String)
│  │        @ Base .\loading.jl:1899
│  │     [56] include_string
│  │        @ .\loading.jl:1909 [inlined]
│  │     [57] exec_options(opts::Base.JLOptions)
│  │        @ Base .\client.jl:305
│  └ @ Makie C:\Users\Administrator\.julia\packages\Makie\XrIti\src\utilities\texture_atlas.jl:169
│  ┌ Warning: Makie is caching fonts, this may take a while. This should usually not happen, unless you're getting your own texture atlas or are without internet!
│  └ @ Makie C:\Users\Administrator\.julia\packages\Makie\XrIti\src\utilities\texture_atlas.jl:181

我加速了一下 Github, 编译成功了.