1. 程式人生 > >andriod eclipse 如何設定ndk-build也即NDK自動編譯C/C++、JNI程式

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

Build Options

    

    

注:Linux環境下只需修改ndk-build.cmdndk-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-CommandANDROID_NDK為環境變數中配置的Android-NDK路徑;Build-Directory為當前工程目錄

    

    

 5. 配置工程屬性,Project->Properties,如下圖,本例以OpenCV為例,其中CNU CGNU C++中配置的是OpenCV的連結庫