JuliaIO / MAT.jl

Julia module for reading MATLAB files
MIT License
278 stars 71 forks source link

Error precompiling MAT.jl in Julia 1.2 #122

Closed mleprovost closed 4 years ago

mleprovost commented 4 years ago

Hello,

I can't precompile MAT.jl in julia 1.2.0. Is there a way to load the "libz" library in Julia

(v1.2) pkg> add MAT
 Resolving package versions...
  Updating `~/.julia/environments/v1.2/Project.toml`
  [23992714] + MAT v0.5.0
  Updating `~/.julia/environments/v1.2/Manifest.toml`
  [9e28174c] + BinDeps v0.8.10
  [a74b3585] + Blosc v0.5.1
  [631607c0] + CMake v1.1.2
  [d5fb7624] + CMakeWrapper v0.2.3
  [f67ccb44] + HDF5 v0.12.3
  [23992714] + MAT v0.5.0
  [bac558e1] + OrderedCollections v1.1.0
  [d96e819e] + Parameters v0.12.0
  [30578b45] + URIParser v0.4.0

julia> using MAT
[ Info: Precompiling MAT [23992714-dd62-5051-b70f-ba57cb901cac]
ERROR: LoadError: LoadError: error compiling version: could not load library "libz"
libz.so: cannot open shared object file: No such file or directory
Stacktrace:
 [1] top-level scope at /home/mat/.julia/packages/Libz/zMAun/src/lowlevel.jl:110
 [2] include at ./boot.jl:328 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1094
 [4] include at ./Base.jl:31 [inlined]
 [5] include(::String) at /home/mat/.julia/packages/Libz/zMAun/src/Libz.jl:3
 [6] top-level scope at /home/mat/.julia/packages/Libz/zMAun/src/Libz.jl:11
 [7] include at ./boot.jl:328 [inlined]
 [8] include_relative(::Module, ::String) at ./loading.jl:1094
 [9] include(::Module, ::String) at ./Base.jl:31
 [10] top-level scope at none:2
 [11] eval at ./boot.jl:330 [inlined]
 [12] eval(::Expr) at ./client.jl:432
 [13] top-level scope at ./none:3
in expression starting at /home/mat/.julia/packages/Libz/zMAun/src/lowlevel.jl:110
in expression starting at /home/mat/.julia/packages/Libz/zMAun/src/Libz.jl:11
caused by [exception 1]
could not load library "libz"
libz.so: cannot open shared object file: No such file or directory
Stacktrace:
 [1] top-level scope at /home/mat/.julia/packages/Libz/zMAun/src/lowlevel.jl:110
 [2] include at ./boot.jl:328 [inlined]
 [3] include_relative(::Module, ::String) at ./loading.jl:1094
 [4] include at ./Base.jl:31 [inlined]
 [5] include(::String) at /home/mat/.julia/packages/Libz/zMAun/src/Libz.jl:3
 [6] top-level scope at /home/mat/.julia/packages/Libz/zMAun/src/Libz.jl:11
 [7] include at ./boot.jl:328 [inlined]
 [8] include_relative(::Module, ::String) at ./loading.jl:1094
 [9] include(::Module, ::String) at ./Base.jl:31
 [10] top-level scope at none:2
 [11] eval at ./boot.jl:330 [inlined]
 [12] eval(::Expr) at ./client.jl:432
 [13] top-level scope at ./none:3
ERROR: LoadError: LoadError: Failed to precompile Libz [2ec943e9-cfe8-584d-b93d-64dcb6d567b7] to /home/mat/.julia/compiled/v1.2/Libz/0KnGZ.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
 [3] _require(::Base.PkgId) at ./loading.jl:1013
 [4] require(::Base.PkgId) at ./loading.jl:911
 [5] require(::Module, ::Symbol) at ./loading.jl:906
 [6] include at ./boot.jl:328 [inlined]
 [7] include_relative(::Module, ::String) at ./loading.jl:1094
 [8] include at ./Base.jl:31 [inlined]
 [9] include(::String) at /home/mat/.julia/packages/MAT/UpKPb/src/MAT.jl:25
 [10] top-level scope at /home/mat/.julia/packages/MAT/UpKPb/src/MAT.jl:30
 [11] include at ./boot.jl:328 [inlined]
 [12] include_relative(::Module, ::String) at ./loading.jl:1094
 [13] include(::Module, ::String) at ./Base.jl:31
 [14] top-level scope at none:2
 [15] eval at ./boot.jl:330 [inlined]
 [16] eval(::Expr) at ./client.jl:432
 [17] top-level scope at ./none:3
in expression starting at /home/mat/.julia/packages/MAT/UpKPb/src/MAT_v5.jl:29
in expression starting at /home/mat/.julia/packages/MAT/UpKPb/src/MAT.jl:30
ERROR: Failed to precompile MAT [23992714-dd62-5051-b70f-ba57cb901cac] to /home/mat/.julia/compiled/v1.2/MAT/3FHIv.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1253
 [3] _require(::Base.PkgId) at ./loading.jl:1013
 [4] require(::Base.PkgId) at ./loading.jl:911
 [5] require(::Module, ::Symbol) at ./loading.jl:906

(v1.2) pkg> st
    Status `~/.julia/environments/v1.2/Project.toml`
  [944b1d66] CodecZlib v0.6.0
  [7073ff75] IJulia v1.20.0
  [23992714] MAT v0.5.0
timholy commented 4 years ago

If you start a fresh session and say using MAT, does it work? Ref https://discourse.julialang.org/t/dll-problems-episode-2/12405

mleprovost commented 4 years ago

Hello, Thank you for your answer. I actually got the same error, same thing in Julia 1.1.1.

timholy commented 4 years ago

My guess is you need a package on your machine. On Ubuntu it might be solved by installing zlib1g-dev.

mleprovost commented 4 years ago

Thank you, that's solved my problem.

judober commented 4 years ago

I have a very similar problem on windows 10 and a new setup of Julia 1.3. I'm getting the error message: ERROR: LoadError: LoadError: error compiling version: could not load library "zlib1" Do I have to install zlib1 seperately? This was not necessary for older versions (of Julia or Mat.jl)

judober commented 4 years ago

If someone is courious: I fixed it by add Libz#master