2016-03-24 9 views
0

シンプルなmakefileとgcc(Windows 10のMinGW)に問題があります。コマンドprompから私が作る起動すると は、これは私の簡単なメイクmakeとMinGWでインクルードファイルを指定できません

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 

ですが、私は得る:

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

-IフラグをlowlevelAccess.oコンパイルに追加していませんが、それが必要なルールです(現在のリンクルールはありません)。

メイクファイルにCFLAGS += $(IJNI) $(IJNIWIN32)を追加してみてください(代わりにCPPFLAGSを使用してください)。技術的にはより正確です。

Catalogue of Built-In Rules(またはmake -qpの出力)を参照して、これらの変数を使用するデフォルトルールがどのようなものかを確認してください。Variables Used by Implicit Rulesを参照してください。

+0

非常に明確で便利なエタンに感謝します! – robyg72

関連する問題