编译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

编译Android版本的Poco库相关推荐

  1. 【ijkplayer】编译 Android 版本的 ijkplayer ② ( 切换到 k0.8.8 分支 | 执行 init-android.sh 脚本进行初始化操作 )

    文章目录 一.进入 ijkplayer-android 目录 二.切换到 k0.8.8 分支 三.执行 init-android.sh 脚本进行初始化操作 参考 https://github.com/ ...

  2. 【错误记录】编译 Android 版本的 ijkplayer 报错 ( ./init-android.sh: 第 37 行: cd: android/contrib/: 没有那个文件或目录 )

    文章目录 一.报错信息 二.解决方案 一.报错信息 编译 Android 版本的 ijkplayer 时 , 执行 init-android.sh 脚本 , 报如下错误 ; root@octopus: ...

  3. 编译android版本binutils工具

    编译android版本binutils工具 准备 编译环境:ubuntu 20.04.2 编译器版本:ndk-24.0.8215888 binutils版本: 2.33.1 1. 生成android ...

  4. 编译Android版本TensorFlow

    在Ubuntu 18.04 LTS 下编译Tensorflow的Android库的步骤: 安装Android Studio/Android sdk 安装Android NDK(Android NDK可 ...

  5. WebRTC:下载与编译Android版本的WebRTC(M66)

    WebRTC是Google公司开源的一套免费的网页实时音视频通信的解决方案,可以说性能非常强大.可以在Google WebRTC网站https://webrtc.org上下载并使用. 源码 下载 源码 ...

  6. 编译android版本sdl2

    一.SDL官网地址:Simple DirectMedia Layer - Homepage 二.SDL git地址:GitHub - libsdl-org/SDL: Simple Directmedi ...

  7. 【ijkplayer】编译 Android 版本的 ijkplayer ⑥ ( 进入 ijkplayer-android/android 目录 | 执行 compile-ijk.sh 脚本完成编译 )

    文章目录 一.进入 ijkplayer-android/android 目录 二.执行 compile-ijk.sh 脚本 参考 https://github.com/bilibili/ijkplay ...

  8. 【ijkplayer】编译 Android 版本的 ijkplayer ④ ( 安装 make yasm 软件 | 执行 compile-ffmpeg.sh all 命令编译 ffmpeg )

    文章目录 一.安装 make 软件 二.安装 yasm 软件 三.执行 compile-ffmpeg.sh all 命令编译 ffmpeg 参考 https://github.com/bilibili ...

  9. 【错误记录】编译 Android 版本的 ijkplayer 报错 ( You must define ANDROID_NDK before starting. | 下载指定版本 NDK )

    文章目录 一.报错信息 二.解决方案 一.报错信息 在编译 ijkplayer 的过程中 , 出现 root@octopus:~/ijkplayer/ijkplayer-android/android ...

最新文章

  1. 说说身边产品的用户体验
  2. 题目1183:守形数
  3. 429. N-ary Tree Level Order Traversal - LeetCode
  4. 如何做相册_腾讯相册管家再创相册管理软件新纪元
  5. poj 1006(中国剩余定理+模板题)
  6. [树链剖分]List wants to travel,Relief grain,hotel加强版,This world need more Zhu
  7. NXP UWB NCJ29D5开发(一)环境搭建
  8. 有驾照不等于会开车,教你开车技巧27招
  9. python-socket客户服务端的传输原理异常关闭的情况
  10. 求立方根算法--个人对立方根算法的穷举和优化
  11. Git版本控制管理(七)--提交和查看提交历史
  12. 3D建模最常用的是那三款软件?
  13. 精选数据分析师常见的面试问题2020
  14. input隐藏边框、设置透明背景色
  15. 教你微信对接图灵机器人
  16. 如何将复杂的物理建模过程化繁为简?
  17. armbian linux装AdGuard Home 广告拦截反追踪
  18. 转)计算机领域的顶级会议和期刊
  19. Oracle之查看当前用户的所有表和表的列-yellowcong
  20. GAP Analysis

热门文章

  1. Java编译时注解处理器(Annotation Processor)详解
  2. 企业为什么要建立私有云
  3. Allegro导入PADS文件
  4. 大数据实训室助力国家高校人才梯队建设
  5. zip文件解密_Shade(Troldesh)勒索宣布停运并放出75万个解密密钥
  6. java basedao 封装,GreenDao的实用封装
  7. 吉他谱软件guitar pro2023吉他和弦、六线谱、BASS四线谱绘制
  8. Springboot热部署失效怎么解决?
  9. python_并发与通信
  10. javascript实现页面窗口最大化