Glib_jll usage failure on v1.13.0-beta2 on Windows

I’m trying out the new v1.13.0-beta2 on Windows but cannot use it because of package build failures. In particular I have been trying to use GLMakie.jl but have a build failure of Cairo_jll.jl, which traces back to a build failure of Glib_jll.jl.

A workaround seems to be adding dependent libraries very explicitly to PATH:

julia> using Pkg

julia> # Ensure these helper packages are installed in the current environment
       Pkg.add(["Gettext_jll", "Libiconv_jll", "PCRE2_jll", "Zlib_jll", "Libffi_jll"])

julia> using Gettext_jll, Libiconv_jll, PCRE2_jll, Zlib_jll, Libffi_jll

julia> extra_paths = [
           joinpath(Gettext_jll.artifact_dir, "bin"),
           joinpath(Libiconv_jll.artifact_dir, "bin"),
           joinpath(PCRE2_jll.artifact_dir, "bin"),
           joinpath(Zlib_jll.artifact_dir, "bin"),
           joinpath(Libffi_jll.artifact_dir, "bin")
       ]

julia> ENV["PATH"] = join(extra_paths, ";") * ";" * ENV["PATH"]

Then using Glib_jll works without issue. Any thoughts? Thanks

Showing the actual error message may increase the chances someone may have something useful to suggest. Without knowing what’s the error message you’re getting, you’re basically expecting others to read into a crystal ball.

Besides that, can you show the full output of versioninfo() before getting the error?

I can reproduce the issue if I use Julia 1.13 or nightly (but not 1.12) from powershell (but not from git bash).

(@v1.13) pkg> activate --temp
  Activating new project at `C:\Users\nzimm\AppData\Local\Temp\jl_ToZVgH`

(jl_ToZVgH) pkg> add Glib_jll
   Resolving package versions...
    Updating `C:\Users\nzimm\AppData\Local\Temp\jl_ToZVgH\Project.toml`
  [7746bdde] + Glib_jll v2.86.3+0
    Updating `C:\Users\nzimm\AppData\Local\Temp\jl_ToZVgH\Manifest.toml`
  [692b3bcd] + JLLWrappers v1.7.1
  [21216c6a] + Preferences v1.5.1
  [b0724c58] + GettextRuntime_jll v0.22.4+0
  [7746bdde] + Glib_jll v2.86.3+0
⌅ [e9f186c6] + Libffi_jll v3.4.7+0
  [94ce4f54] + Libiconv_jll v1.18.0+0
  [4b2f31a3] + Libmount_jll v2.41.3+0
  [56f22d72] + Artifacts v1.11.0
  [ade2ca70] + Dates v1.11.0
  [8f399da3] + Libdl v1.11.0
  [de0858da] + Printf v1.11.0
  [fa267f1f] + TOML v1.0.3
  [4ec0a83e] + Unicode v1.11.0
  [e66e0078] + CompilerSupportLibraries_jll v1.3.0+1
  [efcefdf7] + PCRE2_jll v10.46.0+0
  [83775a58] + Zlib_jll v1.3.1+2
        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`

julia> using Glib_jll
ERROR: InitError: could not load library "C:\Users\nzimm\.julia\artifacts\a155d84614ae0a3fe75f0114904ba7d7ec8cf9a5\bin\libgio-2.0-0.dll"
The specified module could not be found.
Stacktrace:
  [1] #dlopen#3
    @ .\libdl.jl:120 [inlined]
  [2] dlopen(s::String, flags::UInt32)
    @ Base.Libc.Libdl .\libdl.jl:119
  [3] macro expansion
    @ C:\Users\nzimm\.julia\packages\JLLWrappers\m2Pjh\src\products\library_generators.jl:63 [inlined]
  [4] __init__()
    @ Glib_jll C:\Users\nzimm\.julia\packages\Glib_jll\6MvrG\src\wrappers\x86_64-w64-mingw32.jl:18
  [5] run_module_init(mod::Module, i::Int64)
    @ Base .\loading.jl:1452
  [6] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
    @ Base .\loading.jl:1440
  [7] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any}; register::Bool)
    @ Base .\loading.jl:1328
  [8] _include_from_serialized
    @ .\loading.jl:1285 [inlined]
  [9] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128, stalecheck::Bool; reasons::Dict{…}, DEPOT_PATH::Vector{…})
    @ Base .\loading.jl:2160
 [10] _require_search_from_serialized
    @ .\loading.jl:2054 [inlined]
 [11] __require_prelocked(pkg::Base.PkgId, env::String)
    @ Base .\loading.jl:2702
 [12] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base .\loading.jl:2570
 [13] macro expansion
    @ .\loading.jl:2498 [inlined]
 [14] macro expansion
    @ .\lock.jl:376 [inlined]
 [15] __require(into::Module, mod::Symbol)
    @ Base .\loading.jl:2462
 [16] require
    @ .\loading.jl:2438 [inlined]
 [17] eval_import_path
    @ .\module.jl:36 [inlined]
 [18] eval_import_path_all(at::Module, path::Expr, keyword::String)
    @ Base .\module.jl:60
 [19] _eval_using(to::Module, path::Expr)
    @ Base .\module.jl:137
 [20] top-level scope
    @ REPL[2]:1
during initialization of module Glib_jll
Some type information was truncated. Use `show(err)` to see complete types.

julia> versioninfo()
Julia Version 1.13.0-beta2
Commit f36fbbfd95 (2026-02-04 11:07 UTC)
Build Info:
  Official https://julialang.org release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 16 × 12th Gen Intel(R) Core(TM) i5-1240P
  WORD_SIZE: 64
  LLVM: libLLVM-20.1.8 (ORCJIT, alderlake)
  GC: Built with stock GC
Threads: 1 default, 1 interactive, 1 GC (on 16 virtual cores)
Environment:
  JULIA_PKG_USE_CLI_GIT = true

Thanks. The fact that a solution is to fiddle with PATH made me think it’s a problem with the loading path of the libraries, was hoping for versioninfo() to show it to be honest, looks like it doesn’t. Also, thank Windows for not showing which module can’t be found. DependencyWalker.jl may help with that.

With DependencyWalker.jl I get:

julia> Library(Glib_jll.libgio_path)
◼ C:\Users\nzimm\.julia\artifacts\a155d84614ae0a3fe75f0114904ba7d7ec8cf9a5\bin\libgio-2.0-0.dll
  ◼ C:\WINDOWS\System32\KERNEL32.DLL
    ◼ C:\WINDOWS\System32\KERNELBASE.dll
  ◼ C:\WINDOWS\System32\ADVAPI32.dll
    ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\sechost.dll
    ◼ C:\WINDOWS\System32\RPCRT4.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\KERNEL32.DLL
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\msvcrt.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
  ◼ C:\WINDOWS\System32\USER32.dll
    ◼ C:\WINDOWS\System32\GDI32.dll
      ◼ C:\WINDOWS\System32\win32u.dll
    ◼ C:\WINDOWS\System32\win32u.dll
    ◼ C:\WINDOWS\System32\KERNELBASE.dll
  ✗ libglib-2.0-0.dll (NOT FOUND)
  ◼ C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
  ◼ C:\WINDOWS\System32\msvcrt.dll
    ◼ C:\WINDOWS\System32\KERNELBASE.dll
  ◼ C:\Users\nzimm\.julia\artifacts\58a307887a7b823f6a7cac7e6337710ec14aced2\bin\libintl-8.dll
    ◼ C:\WINDOWS\System32\KERNEL32.DLL
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\ADVAPI32.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
      ◼ C:\WINDOWS\System32\sechost.dll
      ◼ C:\WINDOWS\System32\RPCRT4.dll
        ◼ C:\WINDOWS\System32\KERNELBASE.dll
      ◼ C:\WINDOWS\System32\KERNEL32.DLL
        ◼ C:\WINDOWS\System32\KERNELBASE.dll
      ◼ C:\WINDOWS\System32\msvcrt.dll
        ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\Users\nzimm\.julia\artifacts\1da3b3a2698813adf2b925c46aa2d68ec8474449\bin\libiconv-2.dll
      ◼ C:\WINDOWS\System32\KERNEL32.DLL
        ◼ C:\WINDOWS\System32\KERNELBASE.dll
      ◼ C:\WINDOWS\System32\msvcrt.dll
        ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\msvcrt.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
  ◼ C:\WINDOWS\System32\WS2_32.dll
    ◼ C:\WINDOWS\System32\RPCRT4.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
  ◼ C:\WINDOWS\System32\SHELL32.dll
    ◼ C:\WINDOWS\System32\GDI32.dll
      ◼ C:\WINDOWS\System32\win32u.dll
    ◼ C:\WINDOWS\System32\USER32.dll
      ◼ C:\WINDOWS\System32\GDI32.dll
        ◼ C:\WINDOWS\System32\win32u.dll
      ◼ C:\WINDOWS\System32\win32u.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\msvcp_win.dll
  ◼ C:\WINDOWS\SYSTEM32\DNSAPI.dll
    ◼ C:\WINDOWS\System32\KERNELBASE.dll
  ✗ libgmodule-2.0-0.dll (NOT FOUND)
  ◼ C:\WINDOWS\System32\ole32.dll
    ◼ C:\WINDOWS\System32\GDI32.dll
      ◼ C:\WINDOWS\System32\win32u.dll
    ◼ C:\WINDOWS\System32\KERNEL32.DLL
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\USER32.dll
      ◼ C:\WINDOWS\System32\GDI32.dll
        ◼ C:\WINDOWS\System32\win32u.dll
      ◼ C:\WINDOWS\System32\win32u.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\combase.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
      ◼ C:\WINDOWS\System32\RPCRT4.dll
        ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\msvcp_win.dll
  ✗ libgobject-2.0-0.dll (NOT FOUND)
  ◼ C:\Users\nzimm\.julia\juliaup\julia-1.13.0-beta2+0.x64.w64.mingw32\bin\libz.dll
    ◼ C:\WINDOWS\System32\KERNEL32.DLL
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
    ◼ C:\WINDOWS\System32\msvcrt.dll
      ◼ C:\WINDOWS\System32\KERNELBASE.dll
  ✗ SHLWAPI.dll (NOT FOUND)

julia> readdir(dirname(Glib_jll.libgio_path))
24-element Vector{String}:
 "gdbus-codegen"
 "gdbus.exe"
 "gi-compile-repository.exe"
 "gi-decompile-typelib.exe"
 "gi-inspect-typelib.exe"
 "gio-querymodules.exe"
 "gio.exe"
 "glib-compile-resources.exe"
 "glib-compile-schemas.exe"
 "glib-genmarshal"
 "glib-gettextize"
 "glib-mkenums"
 "gobject-query.exe"
 "gresource.exe"
 "gsettings.exe"
 "gspawn-win64-helper-console.exe"
 "gspawn-win64-helper.exe"
 "gtester-report"
 "libgio-2.0-0.dll"
 "libgirepository-2.0-0.dll"
 "libglib-2.0-0.dll"
 "libgmodule-2.0-0.dll"
 "libgobject-2.0-0.dll"
 "libgthread-2.0-0.dll"

Maybe more useful:

julia> Library(Glib_jll.libgio_path*"/../libglib-2.0-0.dll")
◼ C:\Users\nzimm\.julia\artifacts\a155d84614ae0a3fe75f0114904ba7d7ec8cf9a5\bin\libgio-2.0-0.dll/../libglib-2.0-0.dll
  ✗ libpcre2-8-0.dll (NOT FOUND)
...

That’s weird for sure, because libpcre2 should be loaded upon starting Julia, no? Also,

that’s a system library, if we can’t find we can’t do much.

I can fix the problem if I prepend "C:\\Users\\nzimm\\.julia\\juliaup\\julia-1.13.0-beta2+0.x64.w64.mingw32\\bin" to ENV["PATH"] before running using Glib_jll.

1 Like

I created an issue to track this Glib_jll fails to load on Windows on v1.13 · Issue #61004 · JuliaLang/julia · GitHub

Thank you for the help and reproduction of the error message. I should have attached the error message originally!

@nhz2 that was the exact same error I was having.

I think it relates to the ffmpeg issue. Since I do not bother to install another ffmpeg on Windows, I neglect all the plotting packages after 1.13.