编译Android版本的Poco库

编译Android版本的Poco库

项目需要在android平台使用Poco库,花了些时间成功编译,记录下来以备后用。

      编译库总是跟版本有关:编译主机系统为Ubuntu16.04 64位,Poco的版本为1.9.0,

Android ndk版本为r17c。

     首先配置系统环境变量,执行命令sudo gedit /etc/profile 在文件末尾加上

复制代码

export NDK=/home/wgg/Libary/android-ndk-r17c
export ARMGCC=/home/wgg/Libary/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin
export PATH=${PATH}:$NDK
export PATH=${PATH}:$ARMGCC
export ANDROID_NDK_ROOT=$NDK
export ANDROID_SYSROOT=$NDK/sysroot
export PATH=${PATH}:${ANDROID_SYSROOT}
export APP_PLATFORM="android-21"
export TARGET_ABI=armeabi-v7a
export NDK_TOOLCHAIN_VERSION=4.9
export ARMINC=$NDK/sources/cxx-stl/llvm-libc++/include
export INCB=$NDK/sysroot/usr/include/arm-linux-androideabi
export WCINC=$NDK/sysroot/usr/include
export CPLUS_INCLUDE_PATH=${ARMINC}:${INCB}:${WCINC}:${CPLUS_INCLUDE_PATH}
export C_INCLUDE_PATH=${ARMINC}:${INCB}:${WCINC}:${C_INCLUDE_PATH

复制代码

     添加完成后,执行source /etc/profile(也可以重启电脑,重启电脑总是有效的)需要注意的是NDK 需要修改成实际的ndk路径。

     ndk编译环境配置好后,修改poco 配置文件build/config/Android,修改内容如下:

 文件开始处添加

1

2

export ANDROID_SYSROOT="${ANDROID_NDK_ROOT}/platforms/${APP_PLATFORM}/arch-arm"

export ANDROID_SHARED="${ANDROID_NDK_ROOT}/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a"

 

1

2

3

4

5

CC      = $(TOOL)-gcc

CXX     = $(TOOL)-g++

改为

CC      = $(TOOL)-gcc --sysroot=${ANDROID_SYSROOT}

CXX     = $(TOOL)-g++ --sysroot=${ANDROID_SYSROOT}

 

SHAREDLIBEXT     = .so.$(target_version)
SHAREDLIBLINKEXT = .so
改为
SHAREDLIBEXT     = .so
SHAREDLIBLINKEXT =

复制代码

CFLAGS          = $(ARCHFLAGS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 
CXXFLAGS        = $(ARCHFLAGS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions 
改为
CFLAGS          = $(ARCHFLAGS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -std=c11
CXXFLAGS        = $(ARCHFLAGS) -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions -std=c++11 -DANDROID_STL=c++_shared
CXXFLAGS      +=--sysroot=${ANDROID_SYSROOT}

复制代码

1

2

3

LINKFLAGS      +=

改为

LINKFLAGS      +=  -L${ANDROID_SHARED}

 

1

SYSLIBS = -lstdc++ -lsupc++ 改为 SYSLIBS = -lstdc++

  以上修改可能有重复的地方,没有一一check。

      

最后配置Poco并make、make install

 ./configure --config=Android --no-tests --no-samples --minimal --static --shared --perfix=/home/chungeng/compile/poco

  make

  make install

 

如需交流可加QQ群766718184,1038388075 或者QQ3501870,

视频下载地址:http://www.chungen90.com/?news_33/

 Demo下载地址: http://www.chungen90.com/?news_34

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值