2013-11-25 69 views
0

我想構建一個使用SWIG創建的包裝器。當我嘗試構建該文件時,出現錯誤,指出找不到jni.h。我有用-I標誌指定的正確路徑,但它仍然找不到它。我使用cygwin在windows上構建。我究竟做錯了什麼?jni.h:沒有這樣的文件或目錄,包含路徑

$ gcc -c zinnia_wrap.c -I "/C/Program Files \(x86\)/Java/jdk1.6.0_23/include" 
-I "/C/Program Files \(x86\)/Java/jdk.1.6.0_23/include/win32" 
zinnia_wrap.c:135:17: jni.h: No such file or directory 
zinnia_wrap.c:159: error: parse error before '*' token 
zinnia_wrap.c: In function `SWIG_JavaThrowException': 
zinnia_wrap.c:160: error: `jclass' undeclared (first use in this function) 
zinnia_wrap.c:160: error: (Each undeclared identifier is reported only once 
zinnia_wrap.c:160: error: for each function it appears in.) 
zinnia_wrap.c:160: error: parse error before "excep" 
zinnia_wrap.c:175: error: `code' undeclared (first use in this function) 
zinnia_wrap.c:178: error: `jenv' undeclared (first use in this function) 
zinnia_wrap.c:179: error: `excep' undeclared (first use in this function) 
zinnia_wrap.c:181: error: `msg' undeclared (first use in this function) 
+0

您是不是要找/ cygdrive/C/ – krsteeve

+0

@krsteeve - 我嘗試添加/ cygdrive /對我包括前,它仍然沒有工作。 – jgelderloos

回答

1

好吧,所以我想通了什麼是錯的。除了將/ cygdrive /添加到路徑的前面(謝謝@krsteeve),我需要將「/ Program Files \(x86 \)/」更改爲「/ Program Files(x86)/」。我第一次嘗試沒有'\'它抱怨我,但現在它正在工作。完整的工作命令如下:

$ gcc -c zinnia_wrap.c -I "/cygdrive/c/Program Files (x86)/Java/jdk1.6.0_23/include" 
-I "/cygdrive/c/Program Files (x86)/Java/jdk1.6.0_23/include/win32" 
相關問題