无法使用make和MinGW指定包含文件

时间:2016-03-24 14:37:15

标签: gcc makefile

我遇到了一个简单的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

有什么问题? 谢谢!

1 个答案:

答案 0 :(得分:1)

您没有在-I编辑中添加lowlevelAccess.o标记,但这是需要它的规则(而不是您现在拥有它的链接规则)。

尝试将CFLAGS += $(IJNI) $(IJNIWIN32)添加到您的makefile中(可能使用CPPFLAGS而不是我不确定哪个在技术上更正确)。

请参阅Variables Used by Implicit Rules了解这些变量的内容和Catalogue of Built-In Rules(或make -qp的输出),了解使用这些变量的默认规则。