在makefile中,路径为:
JAVA_HOME=/srv/schroot/precise_i386/usr/java
INCLUDES=-I$(JAVA_HOME)/include/ -I. -I/usr/include/freetype2/
CFLAGS=-ansi -fomit-frame-pointer -fno-strength-reduce -g -Wall -DLINUX=1 $(INCLUDES)
mytarget.o:
$(CC) $(CFLAGS) -c mytarget.cpp -o mytarget.o
但是当我编译代码时,我得到了jni.h:没有这样的文件或目录。 我还试图在代码中给出jni.h的完整路径:
#include </srv/chroot/precise_i386/usr/java/include/jni.h>
也不起作用。 我确定jni.h文件在那里。
任何人都知道为什么?感谢。
LJ
答案 0 :(得分:0)
我不能告诉你它为什么不能工作,你应该做一些测试。 像这样的东西:
mytarget.o:
ls -l $(JAVA_HOME)
$(CC) $(CFLAGS) -c mytarget.cpp -o mytarget.o
现在检查ls是否正常工作,如果没有,可能路径中有一些拼写错误?或未映射的网络文件系统?如果它的工作继续包括:
ls -l $JAVA_HOME/include
最后到文件
ls -l $JAVA_HOME/include/jni.h
如果所有ls都工作但仍无法找到标题,那真的很奇怪。
编辑:你也应该尝试:
#include "jni.h"
而不是:
#include <jni.h>