В make-файле путь указан так:
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
Я не могу сказать вам, почему это не сработает, вы должны сделать несколько тестов.
что-то вроде этого:
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>