j-asefa / slsqp4j

A JVM wrapper for the popular SLSQP optimizer
Other
27 stars 7 forks source link

Cannot find 'jni.h' error on MacOS #7

Open oyendrila-dobe opened 2 years ago

oyendrila-dobe commented 2 years ago

I'm trying to compile slsqp4j on MacOS. My gradle details are:

Gradle 6.9.1
------------------------------------------------------------

Build time:   2021-08-20 11:15:18 UTC
Revision:     f0ddb54aaae0e44f0a7209c3c0274d506ea742a0

Kotlin:       1.4.20
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM:          16.0.1 (AdoptOpenJDK 16.0.1+9)
OS:           Mac OS X 11.1 x86_64

My JAVA_HOME is set to the home directory of the above java version and jni.h exists in the include directory inside it. On gradle clean build I am encountering fatal error: jni.h: No such file or directory. I'm looking for any help to understand why the error is occurring.

Here is the full gradle output:

Starting a Gradle Daemon, 1 incompatible Daemon could not be reused, use --status for details

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/oyendriladobe/Documents/Research/HyperSMC_on_MDP/hypersmc/ressources/slsqp4j-39048b6ea9e803ada803bd2c48eb8fb3816cef71/build.gradle' line: 18

* What went wrong:
A problem occurred evaluating root project 'slsqp4j'.
> Could not find method libraries() for arguments [build_2nibyfuoeyzzsnywv625n8q8o$_run_closure1$_closure2@3bb1e1a9] on project ':slsqp4j' of type org.gradle.api.Project.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.9.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 5s
oyendriladobe@MacBook-Pro-5 slsqp4j-39048b6ea9e803ada803bd2c48eb8fb3816cef71 % /usr/local/Cellar/gradle@6/6.9.1/bin/gradle clean build

> Configure project :slsqp4j
Java home /usr/local/Cellar/openjdk@11/11.0.12/libexec/openjdk.jdk/Contents/Home

> Task :slsqp4j:compileC FAILED
/Users/oyendriladobe/Documents/Research/HyperSMC_on_MDP/hypersmc/ressources/slsqp4j-39048b6ea9e803ada803bd2c48eb8fb3816cef71/slsqp4j/src/jni/c/slsqp.c:45:10: fatal error: jni.h: No such file or directory
   45 | #include <jni.h>
      |          ^~~~~~~
compilation terminated.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':slsqp4j:compileC'.
> Process 'command 'gcc-10'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.9.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 2s
3 actionable tasks: 3 executed
oyendrila-dobe commented 2 years ago

The issues here were two: