编译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,修改内容如下:

 文件开始处添加

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"
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}
LINKFLAGS      +=
改为
LINKFLAGS      +=  -L${ANDROID_SHARED}
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_3/

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



原文地址:https://www.cnblogs.com/wanggang123/p/13944686.html