1. 程式人生 > >windows下搭建NDK+Cygwin編譯環境…

windows下搭建NDK+Cygwin編譯環境…

下載ndk,安裝完cygwin後

1.在系統變數Path後面加上C:\cygwin\bin

  這樣在dos下,只要輸入bash就可以進入到cygwin環境。

2.在系統變數Path後面加上E:\android\android-ndk-r8

  輸入命令列的時候簡單一點。

3.先定義一個系統變數NDK_ROOT=E:\android\android-ndk-r8

  注意這個命令在cygwin下 cd $NDK_ROOT可以快速定位到E:\android\android-ndk-r8,在cygwin下顯示為/cygdrive/e/android/android-ndk-r8

在cygwin安裝目錄etc\profile檔案開啟後修改新增NDK目錄PATH="/usr/local/bin:/usr/bin:/cygdrive/d/android/android-ndk-r8e:${PATH}"

修改後可以在bash客戶端執行ndk-build。

4.首先找到cygwin的安裝目錄,找到一個home\<你的使用者名稱>\.bash_profile檔案,我的是:D:\cygwin\home\Administrator\.bash_profile

開啟bash_profile檔案,新增NDK=/cygdrive/<你的碟符>/<android ndk 目錄例如:

NDK_ROOT=/cygdrive/e/android-ndk-r5

export NDK_Root

(NDKRoot這個名字是隨便取的,為了方面以後使用方便,選個簡短的名字,然後儲存,前面不要加"#"

);

這個可能在config配置檔案中用到NDK_ROOT,起到作用。

開啟cygwin,輸入cd $NDK_ROOT,如果輸出上面配置的/cygdrive/e/android-ndk-r8e資訊,則表明環境變數設定成功了。

編譯c程式碼,用的E:\android\android-ndk-r8下的ndk-build命令

在bash裡面輸入

 $cd /cygdrive/e/android/android-ndk-r8/samples/hello-jni

在hello-jni目錄下輸入ndk-build

(在hello-jni/jni目錄下執行ndk-build也得到一樣的結果,但不知道有什麼區別)

如果出現如下畫面,並且存在這個檔案:e:androidandroid-ndk-r5b/samples/hello-jni/obj/local/armeabi/libhello-jni.so,恭喜你編譯環境的基礎工作已經做好了。

在編譯如ffmpeg這樣的專案時,往往需要先寫配置檔案(config.sh),然後再寫編譯指令碼(mk檔案)

然後再編譯。

如果有的專案這些配置工作都做好了,那麼可以像編譯hello-jni一樣直接ndk-build.(比如havenaptr ffmpeg)