Reputation: 585
I've got a problem with Clojure. I want to install neanderthal but each time I try to compile my program I get this error.
; Syntax error compiling at (uncomplicate\neanderthal\native.clj:1:1).
; No namespace: uncomplicate.neanderthal.internal.host.mkl
The first lines of my program
(ns learning.core
(:gen-class)
(:use [uncomplicate.neanderthal core native]))
EDIT: additional info
project code
(defproject learning "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "EPL-2.0 OR GPL-2.0-or-later WITH Classpath-exception-2.0"
:url "https://www.eclipse.org/legal/epl-2.0/"}
:dependencies [[org.clojure/clojure "1.10.1"]
[uncomplicate/neanderthal "0.40.0"]
[clj-http "2.0.0"]]
:main ^:skip-aot learning.core
:target-path "target/%s"
:profiles {:uberjar {:aot :all
:jvm-opts ["-Dclojure.compiler.direct-linking=true"]}})
deps.end
{:deps
{uncomplicate/neanderthal {:mvn/version "0.40.0"}}}
This file should be included in the same directory as project.clj?
I see that the problem has something to do with lein not being able to find the library. That's the error that I get when I try to run lein repl
PS C:\Users\mikol\Documents\Clojure\learning> lein repl
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
#error {
:cause C:\Users\mikol\AppData\Local\Temp\neanderthal-mkl-0.33.04368029947196620199.dll: Can't find dependent libraries
:via
[{:type clojure.lang.Compiler$CompilerException
:message Syntax error macroexpanding at (mkl.clj:90:35).
:data #:clojure.error{:phase :execution, :line 90, :column 35, :source mkl.clj}
:at [clojure.lang.Compiler$InvokeExpr eval Compiler.java 3707]}
{:type java.lang.UnsatisfiedLinkError
:message C:\Users\mikol\AppData\Local\Temp\neanderthal-mkl-0.33.04368029947196620199.dll: Can't find dependent libraries
:at [java.lang.ClassLoader$NativeLibrary load nil -2]}]
:trace
[[java.lang.ClassLoader$NativeLibrary load nil -2]
[java.lang.ClassLoader loadLibrary0 nil -1]
[java.lang.ClassLoader loadLibrary nil -1]
[java.lang.Runtime load0 nil -1]
[java.lang.System load nil -1]
[uncomplicate.neanderthal.internal.host.NarSystem loadLibrary NarSystem.java 48]
[uncomplicate.neanderthal.internal.host.MKL <clinit> MKL.java 16]
[uncomplicate.neanderthal.internal.host.mkl$create_stream_ars5 invokeStatic mkl.clj 87]
[uncomplicate.neanderthal.internal.host.mkl$create_stream_ars5 invoke mkl.clj 85]
[clojure.lang.AFn applyToHelper AFn.java 154]
[clojure.lang.AFn applyTo AFn.java 144]
[clojure.lang.Compiler$InvokeExpr eval Compiler.java 3702]
[clojure.lang.Compiler$DefExpr eval Compiler.java 457]
[clojure.lang.Compiler eval Compiler.java 7182]
[clojure.lang.Compiler load Compiler.java 7636]
[clojure.lang.RT loadResourceScript RT.java 381]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT load RT.java 459]
[clojure.lang.RT load RT.java 424]
[clojure.core$load$fn__6839 invoke core.clj 6126]
[clojure.core$load invokeStatic core.clj 6125]
[clojure.core$load doInvoke core.clj 6109]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5908]
[clojure.core$load_one invoke core.clj 5903]
[clojure.core$load_lib$fn__6780 invoke core.clj 5948]
[clojure.core$load_lib invokeStatic core.clj 5947]
[clojure.core$load_lib doInvoke core.clj 5928]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 667]
[clojure.core$load_libs invokeStatic core.clj 5989]
[clojure.core$load_libs doInvoke core.clj 5969]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 667]
[clojure.core$require invokeStatic core.clj 6007]
[clojure.core$require doInvoke core.clj 6007]
[clojure.lang.RestFn invoke RestFn.java 436]
[uncomplicate.neanderthal.native$eval4770$loading__6721__auto____4771 invoke native.clj 9]
[uncomplicate.neanderthal.native$eval4770 invokeStatic native.clj 9]
[uncomplicate.neanderthal.native$eval4770 invoke native.clj 9]
[clojure.lang.Compiler eval Compiler.java 7177]
[clojure.lang.Compiler eval Compiler.java 7166]
[clojure.lang.Compiler load Compiler.java 7636]
[clojure.lang.RT loadResourceScript RT.java 381]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT load RT.java 459]
[clojure.lang.RT load RT.java 424]
[clojure.core$load$fn__6839 invoke core.clj 6126]
[clojure.core$load invokeStatic core.clj 6125]
[clojure.core$load doInvoke core.clj 6109]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5908]
[clojure.core$load_one invoke core.clj 5903]
[clojure.core$load_lib$fn__6780 invoke core.clj 5948]
[clojure.core$load_lib invokeStatic core.clj 5947]
[clojure.core$load_lib doInvoke core.clj 5928]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 667]
[clojure.core$load_libs invokeStatic core.clj 5989]
[clojure.core$load_libs doInvoke core.clj 5969]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 669]
[clojure.core$use invokeStatic core.clj 6093]
[clojure.core$use doInvoke core.clj 6093]
[clojure.lang.RestFn invoke RestFn.java 408]
[learning.core$eval149$loading__6721__auto____150 invoke core.clj 1]
[learning.core$eval149 invokeStatic core.clj 1]
[learning.core$eval149 invoke core.clj 1]
[clojure.lang.Compiler eval Compiler.java 7177]
[clojure.lang.Compiler eval Compiler.java 7166]
[clojure.lang.Compiler load Compiler.java 7636]
[clojure.lang.RT loadResourceScript RT.java 381]
[clojure.lang.RT loadResourceScript RT.java 372]
[clojure.lang.RT load RT.java 459]
[clojure.lang.RT load RT.java 424]
[clojure.core$load$fn__6839 invoke core.clj 6126]
[clojure.core$load invokeStatic core.clj 6125]
[clojure.core$load doInvoke core.clj 6109]
[clojure.lang.RestFn invoke RestFn.java 408]
[clojure.core$load_one invokeStatic core.clj 5908]
[clojure.core$load_one invoke core.clj 5903]
[clojure.core$load_lib$fn__6780 invoke core.clj 5948]
[clojure.core$load_lib invokeStatic core.clj 5947]
[clojure.core$load_lib doInvoke core.clj 5928]
[clojure.lang.RestFn applyTo RestFn.java 142]
[clojure.core$apply invokeStatic core.clj 667]
[clojure.core$load_libs invokeStatic core.clj 5985]
[clojure.core$load_libs doInvoke core.clj 5969]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.core$apply invokeStatic core.clj 667]
[clojure.core$require invokeStatic core.clj 6007]
[clojure.core$require doInvoke core.clj 6007]
[clojure.lang.RestFn invoke RestFn.java 408]
[user$eval5 invokeStatic form-init6219684087710879613.clj 1]
[user$eval5 invoke form-init6219684087710879613.clj 1]
[clojure.lang.Compiler eval Compiler.java 7177]
[clojure.lang.Compiler eval Compiler.java 7166]
[clojure.lang.Compiler eval Compiler.java 7166]
[clojure.lang.Compiler load Compiler.java 7636]
[clojure.lang.Compiler loadFile Compiler.java 7574]
[clojure.main$load_script invokeStatic main.clj 475]
[clojure.main$init_opt invokeStatic main.clj 477]
[clojure.main$init_opt invoke main.clj 477]
[clojure.main$initialize invokeStatic main.clj 508]
[clojure.main$null_opt invokeStatic main.clj 542]
[clojure.main$null_opt invoke main.clj 539]
[clojure.main$main invokeStatic main.clj 664]
[clojure.main$main doInvoke main.clj 616]
[clojure.lang.RestFn applyTo RestFn.java 137]
[clojure.lang.Var applyTo Var.java 705]
[clojure.main main main.java 40]]}
Upvotes: 0
Views: 513
Reputation: 585
The problem was a missing dependency. Adding [org.bytedeco/mkl-platform-redist "2020.3-1.5.4"] to my project.clj solved the issue.
Upvotes: 2