[英]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.