컴파일러 환경은 Sun Unix Spark cc 기준
환경이 다를 경우
CC 의 컴파일러 변경
INC의 java include 위치 변경
CFLAGS 의 옵션변경
Lib 생성시 -G 옵션을 해당 컴파일러 옵션에 맞겨 변경
Makefile
.SUFFIXES: .c .o .java .class CC = cc JC = javac INC = -I/usr/java/include -I/usr/java/include/solaris SRCS = Source.c OBJS = $(SRCS:.c=.o) JAVASRC = Package/Source.java CLASS = $(JAVASRC:.java=.class) CFLAGS = -g -c JFLAGS = -g .c.o: $(CC) $(INC) $(CFLAGS) $< .java.class: $(JC) $(JFLAGS) $< all : JniLib : $(OBJS) $(CC) -G $(OBJS) -o libShmData.so JavaCls : $(CLASS) clean : rm -rf $(OBJS) |
Lib Compile시 오류가 날 경우 LD_LIBRARY_PATH, CLASSPATH 를 export로 확인 후 재 컴파일
jni로 C Header File을 작성 할 경우 Command
javah -jni Packge.Class
여기서 주의 해야 할 점은 Java 컴파일러로 Class File을 생성시에는 Package/JavaSourceFile.java 형태를 띄지만 javah로 Header File 작성시에는 Package.JavaClass 형태라는 것이다.