В файле 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
Я не могу сказать, почему это не сработает, вам нужно сделать несколько тестов. что-то вроде этого:
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 работают и до сих пор не могут найти заголовок, это действительно странно.
EDIT: вы также должны попробовать:
#include "jni.h"
вместо:
#include <jni.h>