andriod eclipse 如何設定ndk-build也即NDK自動編譯C/C++、JNI程式
本篇文章是Android NDK開發技術的第三篇 詳細介紹如何設定eclipse 來自動編譯C/C++程式碼。
首先闡明兩個觀點
C/C++程式碼用ndk-build來進行編譯,java程式碼則需要用Android sdk編譯,為了開發快捷我們需要再每次更改完C語言程式碼後可以自動編譯C語言為.so庫。
編譯C/C++程式碼有兩種方法:
1、寫好c程式碼後,然後用cygwin搭建ndk-build環境,用ndk-build來編譯出相關的.so檔案(libs目錄)之後,再用eclipse裡去編譯java程式,從而使用.so檔案。該方法在上一篇搭建NDK環境有介紹。(這種方法在windows平臺下使用,但是請注意這種方法已經過時,而有些部落格論文還是推薦使用這種方法,嚴重的不負責任
2、利用eclipse 可以達到自動編譯.so的目的。(這種方法推薦使用,但必須要求NDK的版本大於等於9,ndk下載可以在系列文章中的第一篇找到)
一、Eclipse關聯cygwin(需要提前下載cygwin強烈不推薦使用)
1. 工程->右擊選擇Properties->選擇Builders,在Builders中選擇New建立一個Program
2. 引數配置
二、Eclipse關聯ndk-build(自建Builder方法)(強烈建議使用這種方法,最簡單實用,快速只需要提前安裝eclipse和ndk即可)
1. Project->Properties->Builders->New,新建一個Builder
2. 引數配置
2.1 Main
①Name:NDK_Builder
②Location為ndk-build.cmd的路徑,可以如圖所示絕對路徑,也可以以環境變數的形式,即 ${ANDROID_NDK}\ndk-build.cmd,其中ANDROID_NDK為配置的NDK路徑
③Working Directory,為當前的工程下。
這裡的${}的表達是使用了EC的環境變數,可以使用Variables...按鈕找到一些3 EC的環境變數。
對於Linux上的配置,和這裡的配置一樣,只是把Location的地址改為ndk-build即可
2.2 Refresh
2.3
注:Linux環境下只需修改ndk-build.cmd為ndk-build即可
三、Eclipse關聯ndk-build(利用CDT的方法)
1. 前期準備:Eclipse環境+Android環境+Eclipse C/C++環境
2. 編寫Android JAVA/JNI程式碼,可參考OpenCV例項1
3. 將Android專案轉換為C/C++專案(使其具備C++屬性),如下圖,New -> Other -> C/C++ -> Convert to a C/C++ Project.
4. 配置NDK編譯路徑,Project->Properties,如下圖,其中Build-Command中ANDROID_NDK為環境變數中配置的Android-NDK路徑;Build-Directory為當前工程目錄
5. 配置工程屬性,Project->Properties,如下圖,本例以OpenCV為例,其中CNU C和GNU C++中配置的是OpenCV的連結庫