天天看點

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)