我遇到了一个简单的makefile和gcc(MinGW with Windows 10)的问题。 这是我简单的makefile
IJNI=-I"C:\Program Files (x86)\Java\jdk1.7.0_79\include"
IJNIWIN32=-I"C:\Program Files (x86)\Java\jdk1.7.0_79\include/win32"
CC=gcc
default: main
main: lowlevelAccess.o
$(CC) $(IJNI) $(IJNIWIN32) -c lowlevelAccess -o lowlevelAccess.o
当我从命令提示启动make时,我获得:
gcc -c -o lowlevelAccess.o lowlevelAccess.c
lowlevelAccess.c:7:17: fatal error: jni.h: No such file or directory
#include <jni.h>
^
compilation terminated.
make: *** [lowlevelAccess.o] Error 1
有什么问题? 谢谢!
答案 0 :(得分:1)
您没有在-I
编辑中添加lowlevelAccess.o
标记,但这是需要它的规则(而不是您现在拥有它的链接规则)。
尝试将CFLAGS += $(IJNI) $(IJNIWIN32)
添加到您的makefile中(可能使用CPPFLAGS
而不是我不确定哪个在技术上更正确)。
请参阅Variables Used by Implicit Rules了解这些变量的内容和Catalogue of Built-In Rules(或make -qp
的输出),了解使用这些变量的默认规则。