【发布时间】:2023-03-12 08:20:02
【问题描述】:
我正在为 i2c 传感器开发 JNI 库,但无法让我的 makefile 工作,有人可以看看吗:
CC = gcc
#CFLAGS = -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marmv6z -Wall
CFLAGS = -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O3 -Wall -shared -I/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/include -I/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/include/linux
LIBS= -L'$(LD_LIBRARY_PATH)' -ljvm
LD = ld
LDFLAGS =
OBJ = Test.o raspi.o i2c.o sht21.o
BIN = libpijava.so
gpio: $(OBJ)
$(CC) $(CFLAGS) -o $(BIN) $(OBJ) $(LDFLAGS) $(LIBS)
%.o: %.c
$(CC) $(CFLAGS) -c $<
clean:
rm -rf $(BIN) $(OBJ)
我的 JNI c 文件是 Test.cpp,它依赖于 sht21.h、raspi.h 和 i2c.h
也改变了:
CC = gcc -I/usr/lib/jvm/default-java
#CFLAGS = -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marmv6z -Wall
CFLAGS = -mtune=arm1176jzf-s -mfpu=vfp -mfloat-abi=hard -marm -O3 -Wall -shared -I/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/include -I/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/include/linux
LD = ld
LDFLAGS =
OBJ = Test.o raspi.o i2c.o sht21.o
BIN = libpijava.so
gpio: $(OBJ)
$(CC) $(CFLAGS) -o $(BIN) $(OBJ) $(LDFLAGS)
%.o: %.c
$(CC) $(CFLAGS) -c $<
clean:
rm -rf $(BIN) $(OBJ)
【问题讨论】:
标签: c++ gcc makefile java-native-interface g++