2011-07-30 33 views
0

我正在嘗試使用Cygwin shell來做這個問題。我已經根據2個基本相同的教程進行了設置,但我無法使shell/make過程正常工作。顯然,Unix/Cygwin技能缺乏。因此,我的Cygwin被安裝到它的默認位置,並且我已經設置了Android SDK和NDK(正常的Java應用程序可以很好地從Eclipse構建/調試)。試圖編譯NDK的San Angeles示例(Windows)的JNI(native)部分

這是我修改Cygwin.bat的樣子:

@echo off 

set IS_UNIX= 
set DEV_ROOT=c:/PROGRA~1/Android/android-ndk-r6/samples/san-angeles 
set JAVA_HOME=c:/PROGRA~1/Java/jdk1.6.0_26 
set CLASSPATH=c:/PROGRA~1/Android/android-ndk-r6/samples/san-angeles/obj 
set PATH=c:/PROGRA~1/Android/android-sdk/tools;c:/PROGRA~1/Android/android-ndk-r6 
set ANDROID_NDK_ROOT=c:/PROGRA~1/Android/android-ndk-r6 
set NDK_PROJECT_PATH=c:/PROGRA~1/Android/android-ndk-r6/samples/san-angeles 
C: 
chdir C:\cygwin\bin 
bash --login -i 

這些路徑是正確的。當我改變路徑NDK根和鍵入./ndk-build,這是結果:

[email protected] ~ 
$ cd c:/progra~1/android/android-ndk-r6 

[email protected] /cygdrive/c/progra~1/android/android-ndk-r6 
$ ./ndk-build 
/cygdrive/c/progra~1/android/android-ndk-r6/build/core/build-binary.mk:37: *** t 
arget pattern contains no `%'. Stop. 

[email protected] /cygdrive/c/progra~1/android/android-ndk-r6 
$ 

在我在正確的方向屁股甲踢,將不勝感激。

+1

如果我沒有記錯,你應該從項目目錄編譯,而不是NDK根目錄。 – ThomasW

+0

ThomasW是正確的。你需要cd到項目中(在這裏是DEV_ROOT),然後調用'ndk-build'。 在另一個說明中,你應該(除非Cygwin.bat以不同的方式工作)在'set PATH ='行的末尾添加':$ PATH',否則你會失去PATH中已經設置的其他東西。 –

+0

謝謝各位先生們,一定會試試看! – nielsj

回答

1

我已經使用評論解決了問題。

首先,我不得不去項目路徑爲了構建,其次它幫助當我替換所有DOS路徑posix/Cygwin路徑!這裏是新的批處理文件:

@echo off 
set DEV_ROOT=/cygdrive/c/PROGRA~1/Android/android-ndk-r6/samples/hello-gl2 
set IS_UNIX= 
set JAVA_HOME=/cygdrive/c/PROGRA~1/Java/jdk1.6.0_26 
set ANDROID_NDK_ROOT=/cygdrive/c/PROGRA~1/Android/android-ndk-r6 
set PATH=/cygdrive/c/PROGRA~1/Android/android-sdk/tools:%ANDROID_NDK_ROOT%:$PATH 
set CLASSPATH=%DEV_ROOT%/obj 
set NDK_PROJECT_PATH=%DEV_ROOT% 
C: 
chdir C:\cygwin\bin 
bash --login -i 

示例已更改,但您會得到它。另外,@startup,do:cd $ DEV_ROOT