Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 初級開發 >> Linux交叉編譯(Android-NDK-r5)(from 163)

Linux交叉編譯(Android-NDK-r5)(from 163)

編輯:初級開發

最近一段時間在做Kobo項目,主要是Android-ndk-r5的交叉編譯,有一個已經寫好了的程序庫,但是呢,是用vc寫的,而android裡面的Java是不能直接調用VC寫的代碼,所以我們需要將vc寫的程序庫交叉編譯成Java能調用的.so動態鏈接庫。

首先,是使用ubuntu10.0.4,剛剛開始的時候使用的是ubuntu8.10出現了很多的問題,是為版本太低。關聯性太大了!遂使用ubuntu10.04.
在windows上裝ubuntu10.0.4時,直接空出一個盤用來安裝ubuntu,使用虛擬光驅,像Windows中裝一般軟件一樣安裝。直至完成。
當安裝完成ubuntu後,需要根據實際情況下載一些東西安裝上去,對於Adroid-ndk,需要下載Java的Linux版JDK。
然後將Linux版本的android-ndk-r5下載下來,然後解壓就可以了。用自帶的例子測試看是否成功。記住:在解壓之後,需要在cd /etc/profile裡面配置環境變量。到/etc目錄下,sudo gedit profile打開後在最後配置環境變量:
ANDROID_NDK=/home/administrator/Android/android-ndk-r5
export PATH=$android_NDK:$PATH
如果需要配置動態連接庫以及靜態鏈接庫也在這個地方。
注意:android-ndk-r1-----r3解壓後,需要執行.sh文件。而android-ndk-r4----r5則不需要。

交叉編譯: 在交叉編譯的時候,首先你需要修改Adobe_RMSDK的buile下的Makefile文件,配置相應的環境,OS=Linux,ARCH=arm,TOOLS=android-ndk,android-ndk.tools是一個文件,用來配置編譯路徑COMPILER_PATH,系統庫SYSTEM_LIB_DIR等,以及
CC=$(COMPILER_PATH)/$(TOOLCHAIN_LIB) -gcc
STRIP=$(COMPILER_PATH)/$(TOOLCHAIN_LIB) -strip
AR=$(COMPILER_PATH)/$(TOOLCHAIN_LIB) -ar
LINK=$(COMPILER_PATH)/$(TOOLCHAIN_LIB) -g++
還有一些 CODEGEN_FLAGS+= -mfloat-abi=softfp -mfpu=vfp
INCLUDE_FLAGS+= -mfloat-abi=softfp-mfpu=vfp -I/home/administrator/Adobe_RMSDK/openssl/include
LIBRARY_FLAGS+= -L/home/administrator/Adobe_RMSDK/openssl
在build文件夾中還有一些其他的common.build,config.build文件,都是用來幫助編譯的。project.make。
然後進入到build文件夾下,執行make -f Makefile編譯VC的程序庫。
注意:因為是交叉編譯,最終是要用在Android手機上,所以,編譯的時候使用的系統庫不能是ubuntu的系統lib,而是Android-ndk-r5的平台庫,如:android-ndk-r5下的platforms下的android-5裡面的庫。而vc的stl庫則是在sources下面。toolchains是用來編譯的,裡面有gcc,g++等。
在編譯中,如果出現XXXX沒找到時,表示你的路徑沒包含在裡面,或者沒指對路徑。
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved