1. 程式人生 > >PlatinumKit編譯及注意事項

PlatinumKit編譯及注意事項

Platinum UPnP SDK 是一個跨平臺的C++庫,利用該庫,可以很容易就構建出DLNA/UPnP控制點(DLNA/UPnP Control Point)和DLNA/UPnP裝置(DLNA/UPnP Device),其中包括有UPnP AV Media Server, Media Render & Control Point的例子。它可以在Windows, Mac OSX, Linux, iPhone, Android, Symbian等多種C語言開發平臺上編譯通過且執行 


1、安裝NDK

我們的開發環境是Centos6.5 64位的。 下載NDK的過程要是不知道的就百度上去找吧。

配置ANDROID_NDK_ROOT環境變數

<1>使用命令vi ~/.bashrc 開啟環境變數設定,並在檔案末尾新增:

ANDROID_NDK_ROOT=你的ndk根目錄絕對路徑

export ANDROID_NDK_ROOT

<2>使用命令source  ~/.bashrc使環境變數設定生效。

<3>使用命令echo $ANDROID_NDK_ROOT檢視是否生效,如果輸出完整路徑正確,說明環境變數設定ok.

<4>此步可選,使用cd命令進入到androidNDK/samples/hello-jni進入例子目錄,然後使用命令:sudo $ANDROID_NDK_ROOT/ndk-build

如果編譯成功,則會生成so庫,表示NDK能夠正常Work

2、安裝 scons 

因為有編譯時要用到scons 構建工具,所以要先安裝它。yum install scons 

3、編譯 Platinumkit

在Platinumkit的根目錄下(注意一定要是根目錄,也即是存在一個名叫SConstruct檔案的目錄)執行:

scons target=arm-android-linux build_config=Release

編譯完成在Platinum\Build\Targets\arm-android-linux\Release目錄下生成相關*.a庫。

編譯得到的還有android的測試程式,這些程式,在android4.4以後版本上要求以PIE方式構建,因些需要在Build.scons里加上以下配置



env.Append(CCFLAGS=['-pie','-fPIE'])
env.Append(LINKFLAGS=['-pie','-fPIE'])

3、編譯JNI

進入到/PlatinumKit/Platinum/Source/Platform/Android/module/platinum/jni目錄下面,使用命令:$ANDROID_NDK_ROOT/ndk-build NDK_DEBUG=0。

編譯完成進入到目錄PlatinumKit/Platinum/Source/Platform/Android/module/platinum/lib目錄下面可以看到生成so