SBT-调用在SBT中失败的GCC调用,但不是在我手动执行它时

SBT-调用在SBT中失败的GCC调用,但不是在我手动执行它时,c,scala,gcc,sbt,C,Scala,Gcc,Sbt,我正在开发一个库,它将与Scala的Raspberry PI上的I2C总线通信。为此,我需要一点JNI代码,它将与设备上的操作系统中断 我尝试为此创建一个构建文件,现在看起来如下: name := "core" organization := "nl.fizzylogic.reactivepi" scalaVersion := "2.11.6" val nativeClasses = List( "nl.fizzylogic.reactivepi.i2c.I2CDevice" )

我正在开发一个库,它将与Scala的Raspberry PI上的I2C总线通信。为此,我需要一点JNI代码,它将与设备上的操作系统中断

我尝试为此创建一个构建文件,现在看起来如下:

name := "core"

organization := "nl.fizzylogic.reactivepi"

scalaVersion := "2.11.6"



val nativeClasses = List(
  "nl.fizzylogic.reactivepi.i2c.I2CDevice"
)

val nativeDeviceSources = List(
  "src/jni/nl_fizzylogic_reativepi_i2c_I2CDevice.c"
)

val nativeGenerateHeaders = taskKey[Int]("Generates JNI headers for the library")
val nativeCompile = taskKey[Int]("Compiles the native library")

nativeGenerateHeaders := {
  ("javah -classpath target/scala-2.11/classes -d src/jni " + nativeClasses.mkString(" ")) !
}

nativeCompile := {
  ("gcc -Wl -add-stdcall-alias -I$JAVA_HOME/include -I$JAVA_HOME/include/darwin -I$JAVA_HOME/include/linux -shared -o target/reactivepi.so " + nativeDeviceSources.mkString(" ")) !
}
到目前为止,javah调用是成功的。但是当我调用nativeCompile任务时,GCC告诉我它找不到jni.h文件。但是,当我将命令从构建文件复制粘贴到终端并执行它时,它成功了

当我从自定义构建任务中执行gcc时,它似乎没有拾取包含路径。但我不知道我做错了什么