# Failed to precompile LibSndFile

**URL:** <https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830>\
**Category:** General Usage\
**Tags:** question\
**Created:** [September 18, 2020, 8:44am UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830 "2020-09-18T08:44:50Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![kogad](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kogad/32/18629_2.png) [@kogad](https://discourse.julialang.org/u/kogad)\
**Post date:** [September 18, 2020, 8:44am UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830/1 "2020-09-18T08:44:50Z")

</div>

I’m trying to use LibSndFile.jl, but I get a following error:

```julia
julia> using LibSndFile
[Info: Precompiling LibSndFile [b13ce0c6-77b0-50c6-a2db-140568b8d1a5]
ERROR: LoadError: LibSndFile not properly installed. Please run Pkg.build("LibSndFile")
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] top-level scope at /Users/kogadmbp/.julia/packages/LibSndFile/2R0fx/src/LibSndFile.jl:40
 [3] include(::Function, ::Module, ::String) at ./Base.jl:380
 [4] include(::Module, ::String) at ./Base.jl:368
 [5] top-level scope at none:2
 [6] eval at ./boot.jl:331 [inlined]
 [7] eval(::Expr) at ./client.jl:467
 [8] top-level scope at ./none:3
in expression starting at /Users/kogadmbp/.julia/packages/LibSndFile/2R0fx/src/LibSndFile.jl:37
ERROR: Failed to precompile LibSndFile [b13ce0c6-77b0-50c6-a2db-140568b8d1a5] to /Users/kogadmbp/.julia/compiled/v1.5/LibSndFile/yIqel_jUpOa.ji.
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] compilecache(::Base.PkgId, ::String) at ./loading.jl:1305
 [3] _require(::Base.PkgId) at ./loading.jl:1030
 [4] require(::Base.PkgId) at ./loading.jl:928
 [5] require(::Module, ::Symbol) at ./loading.jl:923

```

So I tried to build LibSndFile, but I got more error.

```julia
(@v1.5) pkg> build LibSndFile
   Building SpecialFunctions → `~/.julia/packages/SpecialFunctions/ne2iw/deps/build.log`
   Building Conda ───────────→ `~/.julia/packages/Conda/3rPhK/deps/build.log`
   Building FFTW ────────────→ `~/.julia/packages/FFTW/2okGQ/deps/build.log`
   Building WinRPM ──────────→ `~/.julia/packages/WinRPM/Y9QdZ/deps/build.log`
   Building Homebrew ────────→ `~/.julia/packages/Homebrew/NtxoA/deps/build.log`
   Building LibSndFile ──────→ `~/.julia/packages/LibSndFile/2R0fx/deps/build.log`
┌ Error: Error building `LibSndFile`: 
│ ERROR: LoadError: ArgumentError: Package Compat not found in current path:
│ - Run `import Pkg; Pkg.add("Compat")` to install the Compat package.
│ 
│ Stacktrace:
│ [1] require(::Module, ::Symbol) at ./loading.jl:893
│ [2] include(::String) at ./client.jl:457
│ [3] top-level scope at none:5
│ in expression starting at /Users/kogadmbp/.julia/packages/LibSndFile/2R0fx/deps/build.jl:2
└ @ Pkg.Operations /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Pkg/src/Operations.jl:949

```

I added Compat, but I got the same error.  
How could I solve this problem?

Here is my versioninfo() and Pkg\> status.

```julia
ulia> versioninfo()
Julia Version 1.5.1
Commit 697e782ab8 (2020-08-25 20:08 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin19.5.0)
  CPU: Intel(R) Core(TM) i5-1038NG7 CPU @ 2.00GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-9.0.1 (ORCJIT, icelake-client)
Environment:
  JULIA_NUM_THREADS = 4

(@v1.5) pkg> status
Status `~/.julia/environments/v1.5/Project.toml`
  [6e4b80f9] BenchmarkTools v0.5.0
  [9e28174c] BinDeps v0.8.10
  [159f3aea] Cairo v1.0.5
  [34da2185] Compat v2.2.1
  [a81c6b42] Compose v0.9.1
  [717857b8] DSP v0.6.0
  [31a5f54b] Debugger v0.6.6
  [7a1cc6ca] FFTW v0.3.0
  [5789e2e9] FileIO v1.4.3
  [186bb1d3] Fontconfig v0.4.0
  [a2cc645c] GraphPlot v0.3.1
  [4c0ca9eb] Gtk v1.1.5
  [d9be37ee] Homebrew v0.6.4 `https://github.com/JuliaPackaging/Homebrew.jl.git#master`
  [7073ff75] IJulia v1.21.3
  [c8e1da08] IterTools v1.3.0
  [b13ce0c6] LibSndFile v2.0.0
  [093fc24a] LightGraphs v1.3.3
  [f57c4921] MusicProcessing v1.8.1 `https://github.com/JuliaMusic/MusicProcessing.jl#master`
  [91a5bcdd] Plots v0.27.1
  [80ea8bcb] PortAudio v1.1.0 `https://github.com/JuliaAudio/PortAudio.jl#master`
  [bd7594eb] SampledSignals v2.0.0
  [2913bbd2] StatsBase v0.32.2
  [8149f6b0] WAV v1.0.3
  [0818e8b4] WORLD v0.6.0
  [10745b16] Statistics

```

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [September 18, 2020, 9:55am UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830/2 "2020-09-18T09:55:27Z")

</div>

Can you try using `v2.3.0` of `LibSndFile.jl`?

```julia
]add LibSndFile@v2.3.0

```

---

<div class="post-metadata">

**Author:** ![kogad](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kogad/32/18629_2.png) [@kogad](https://discourse.julialang.org/u/kogad)\
**Post date:** [September 18, 2020, 11:16am UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830/3 "2020-09-18T11:16:03Z")

</div>

I tried it and got this error.

```julia
(@v1.5) pkg> add LibSndFile@v2.3.0
  Resolving package versions...
ERROR: Unsatisfiable requirements detected for package FFTW [7a1cc6ca]:
 FFTW [7a1cc6ca] log:
 ├─possible versions are: [0.1.0-0.1.2, 0.2.0-0.2.4, 0.3.0, 1.0.0-1.0.1, 1.1.0, 1.2.0-1.2.4] or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions [0.1.0-0.1.2, 0.2.0-0.2.4, 0.3.0, 1.0.0-1.0.1, 1.1.0, 1.2.0-1.2.4]
 ├─restricted by compatibility requirements with WORLD [0818e8b4] to versions: [0.1.0-0.1.2, 0.2.0-0.2.4, 0.3.0]
 │ └─WORLD [0818e8b4] log:
 │ ├─possible versions are: 0.6.0 or uninstalled
 │ └─restricted to versions * by an explicit requirement, leaving only versions 0.6.0
 └─restricted by compatibility requirements with SampledSignals [bd7594eb] to versions: [1.1.0, 1.2.0-1.2.4] — no versions left
   └─SampledSignals [bd7594eb] log:
     ├─possible versions are: [2.0.0, 2.1.0] or uninstalled
     ├─restricted to versions * by PortAudio [80ea8bcb], leaving only versions [2.0.0, 2.1.0]
     │ └─PortAudio [80ea8bcb] log:
     │ ├─possible versions are: 1.1.0 or uninstalled
     │ └─PortAudio [80ea8bcb] is fixed to version 1.1.0
     └─restricted by compatibility requirements with LibSndFile [b13ce0c6] to versions: 2.1.0
       └─LibSndFile [b13ce0c6] log:
         ├─possible versions are: [2.0.0, 2.1.0, 2.2.0, 2.3.0] or uninstalled
         └─restricted to versions 2.3.0 by an explicit requirement, leaving only versions 2.3.0

```

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [September 18, 2020, 11:21am UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830/4 "2020-09-18T11:21:35Z")

</div>

As a general remark, try to not put too many package in the global environment and use instead local environments, this will save you from 99% of incompatibilities issues in the future.

For the specific case, it looks like `WORLD` (which I assume is [https://github.com/r9y9/WORLD.jl](https://github.com/r9y9/WORLD.jl) and looks fairly old) is preventing you from installing a more recent FFTW version. Do you need both `WORLD` _and_ `LibSndFile` in the same environment? If not, remove `WORLD` and then you should be able to update `LibSndFile` to the latest version (which shouldn’t have the problem you were experience originally). Even better, keep in the global environment as small as possible and install `LibSndFile` in a local environment

---

<div class="post-metadata">

**Author:** ![kogad](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kogad/32/18629_2.png) [@kogad](https://discourse.julialang.org/u/kogad)\
**Post date:** [September 18, 2020, 12:27pm UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830/5 "2020-09-18T12:27:10Z")

</div>

Thank you for your advice! It’s really helpful for me because I’m occasionally in trouble over compatibilities.

Removing `WORLD`，I was able to use l `LibSndFile`. However, I was thinking of using both. Is there no way to use them at the same time?

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [September 18, 2020, 1:05pm UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830/6 "2020-09-18T13:05:13Z")

</div>

> [@kogad](#):
>
> However, I was thinking of using both. Is there no way to use them at the same time?

Not as `WORLD.jl` is now. It needs to be updated. I might have the time to open a pull request this weekend (no promises!), but then the maintainer needs to agree with the changes and merge it

---

<div class="post-metadata">

**Author:** ![kogad](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kogad/32/18629_2.png) [@kogad](https://discourse.julialang.org/u/kogad)\
**Post date:** [September 18, 2020, 3:04pm UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830/7 "2020-09-18T15:04:07Z")

</div>

I will be glad if you open a pull request. I hope the maintainer will merge it.  
Thank you very much, giordano!

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [September 18, 2020, 7:13pm UTC](https://discourse.julialang.org/t/failed-to-precompile-libsndfile/46830/8 "2020-09-18T19:13:28Z")

</div>

[https://github.com/r9y9/WORLD.jl/pull/37](https://github.com/r9y9/WORLD.jl/pull/37)
