繁体   English   中英

如何在JNI代码中包含cspi / spi.h头文件?

[英]How to include cspi/spi.h header file in JNI code?

我试图在JNI C代码中包含spi.h头文件,而在/usr/include/at-spi-1.0/cspi/spi.h文件包含在C代码中时,出现了以下致命错误,例如“ 致命错误: cspi / spi.h:没有这样的文件或目录

为了创建“ .so”文件,我使用了以下命令:

sudo gcc -shared -fPIC -o libHelloJNI.so -I/usr/lib/jvm/java-7-openjdk-amd64/include  -I/usr/lib/jvm/java-7-openjdk-amd64/include/linux  -I/usr/include/at-spi-1.0/cspi  HelloJNI.c

使用'-I'我成功包含了JNI.h头文件,但是当我尝试包含/usr/include/at-spi-1.0/cspi/spi.h文件时,出现了致命错误,即没有这样的文件或目录

因此,请查看以下代码,并提供您的反馈!

#include<jni.h>
#include<cspi/spi.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include"HelloJNI.h" 

// Implementation of native method sayHello() of HelloJNI class
   JNIEXPORT void JNICALL Java_HelloJNI_sayHello(JNIEnv *env, 
                                      jobject thisObj,jint a) 
   {
       printf("Hello World! %d\n",a);
       return;
   }

   JNIEXPORT void JNICALL JAVA_HelloJNI_initSPI(JNIEnv *env, jclass 
                                               cls)
   {

      int init_error;
      init_error = SPI_init();
      putenv("GTK_MODULES=gail:atk-bridge");
      putenv("GNOME_ACCESSIBILITY=1");

      if(init_error)
      {     
               printf("First time error %d in Initialising 
                      SPI\n",init_error);   
      }
      else
      {
                printf("SPI Initialise successfully");
      }
           SPI_event_main();
           return;
  }

如果在#include指令中指定cspi/spi.h cspi ,则-I开关中不需要cspi

更改为:

-I/usr/include/at-spi-1.0/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM