在網上找了好多關於android如何編譯和使用boost的文章,不時過時,就是行不通。花了些時間研究了這個問題,所以整理如下。由於文筆有限,大家在使用過程有問題,歡迎多交流。
android ndk:android-ndk-r7-crystax-5.beta3()
boost for android :
工程目錄:/home/zzl/stream_prj/8_mobile_cli/
ndk及第三方庫目錄:/home/zzl/android/
一、編譯 boost for android
1 解壓縮android-ndk-r7-crystax-5.beta3.zip到/home/zzl/android, 並建立環境變數
export ndk_root=/home/zzl/android/android-ndk-r7-crystax-5.beta3
2 建立 ndk的 standalone 的編譯環境
mkdir /home/zzl/stream_prj/8_mobile_cli/arm-linux-androideabi-4.6.3
cd ~/android/android-ndk-r7-crystax-5.beta3/build/tools
./make-standalone-toolchain.sh --platform=android-14 --install-dir= /home/zzl/stream_prj/8_mobile_cli/arm-linux-androideabi-4.6.3 --ndk-dir=$ndk_root
3 定義環境變數
export android_sysroot=/home/zzl/stream_prj/8_mobile_cli/arm-linux-androideabi-4.6.3/sysroot
export cry_stl_lib_root=/home/zzl/android/android-ndk-r7-crystax-5.beta3/sources/cxx-stl/gnu-libstdc++/libs/armeabi/4.6.3/
4 解壓縮boost-for-android-master.zip到/home/zzl/android
cd /home/zzl/android/boost-for-android-master
./build-android.sh --boost=1.49.0 $ndk_root (對於ndkcrystax,由於boost-for-android目前最新只支援boost 1.49.0,所以指定這個版本)
6 定義幾個boost的環境變數
export android_boost_inc=/home/zzl/android/boost-for-android-master/build/include/boost-1_49
export android_boost_lib=/home/zzl/android/boost-for-android-master/build/lib
說明:
由於official ndk的stl對c++的rtti、exceptions有些限制,而boost庫又用到這些東東,所以才用 crystax. (曾經試用official ndk,未遂)
二、在ndk中使用boost庫
寫了乙個非常簡單的test.so
1 test.cpp**
#include
#include
#include
std::string add(const std::string& a, const std::string& b)
2 makefile
有幾點特別說明的地方(我花了不少時間在此),由於我是mpc工具生成makefile,檔案內容較多,在此省略其它無關**。
dynamicflags =-dandroid -d_exceptions
cppflags = $(picflags) $(genflags)-fexceptions -frtti-d_reentrant-i"$(android_boost_inc)"
ldflags = -l"."-l"$(android_boost_lib)" -l"$(android_sysroot)/usr/lib" -l"$(cry_stl_lib_root)" -fuse-ld=bfd
ldlibs =-l"supc++$(libsuffix)" -l"gnustl_static$(libsuffix)" -l"boost_thread-gcc-mt-1_49$(libsuffix)" -l"boost_system-gcc-mt-1_49$(libsuffix)"-ldl
VS2010編譯使用STLport與boost
win7下編譯stlport 5.2.1 與 boost 1 54 0的方法 一 編譯stlport 1 開啟vs2010的 visual studio command prompt 2010 工具 2 進入到stlport的解壓目錄,而且在該目錄下可以看到 configure.bat 3 cd 進...
在Windows上使用VC編譯並安裝ACE
在windows上使用vc編譯並安裝ace 標籤 來自官方的readme 在windows上使用vc編譯並安裝ace ace包含vc7.1和vc8的工程檔案。vc8能夠在windows 桌面 伺服器 wince,winmobie上編譯。大部分使用者對ce mobile不感興趣,所以這些平台的有自己的...
PJSIP Linux編譯庫並使用
1 configure 2 make dep make 3 copy所有的靜態庫到test lib 下,copy所有的.h 檔案到test include下。4 編寫測試 hellosip.c 5 編寫makefile,如下 注意.a靜態庫的包含順序?obj hellosip cc gcc cfla...