如何用ndk编译安卓下poco
使用 NDK 编译 Android 下的 POCO POCO 是一个功能强大的开源 C++ 库,提供了许多有用的组件和工具,例如网络库、数据库库、加密库等。但是,编译 POCO 在 Android 平台下却不是一件容易的事情。下面,我们将详细介绍如何使用 NDK 编译 Android 下的 POCO。 我们需要从 SourceForge 网站下载 POCO 的源代码,地址是 http://sourceforge.net/projects/poco/files/sources/。在这里,我们可以找到所有的 POCO 版本,包括最新的和历史版本。我们选择 1.4.2 版本,并下载相应的源代码包。 接下来,我们需要使用 NDK 编译 POCO。我们需要安装 NDK,并将其添加到环境变量中。假设 NDK 安装在 `/home/jh/work/android/android-ndk-r8/` 目录下,我们可以使用 `export NDK=/home/jh/work/android/android-ndk-r8/` 命令将其添加到环境变量中。 然后,我们需要创建一个独立的工具链来编译 POCO。我们可以使用 `NDK/build/tools/make-standalone-toolchain.sh` 脚本来创建工具链。例如,我们可以使用以下命令: ``` $NDK/build/tools/make-standalone-toolchain.sh --platform=android-8 --install-dir=$HOME/my-android-toolchain ``` 这里的 `$NDK` 是 NDK 的安装目录,`--platform=android-8` 指定了目标平台为 Android 8,`--install-dir=$HOME/my-android-toolchain` 指定了工具链的安装目录。 接下来,我们需要将工具链添加到环境变量中,以便在编译 POCO 时可以使用。我们可以使用以下命令: ``` export PATH=$PATH:$HOME/my-android-toolchain/bin ``` 现在,我们可以开始编译 POCO 了。我们需要修改 `./Foundation/Makefile` 文件,删除 `FPEnvironment` 行,以便在 Android 平台下编译 POCO。 然后,我们可以使用以下命令编译 POCO: ``` ./configure --config=Android --no-samples --no-tests make -s -j4 ``` 这里,我们使用 `./configure` 命令生成 Makefile 文件,然后使用 `make` 命令编译 POCO。 但是,我们需要跳过第 7 步,因为我们使用 NDK 编译 POCO。然后,我们可以创建一个 jni 文件夹在 `./Foundation/` 目录下,并添加 Android.mk 和 Application.mk 文件。 Android.mk 文件的内容如下: ``` # Android.mk # POCO Foundation LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := PocoFoundation LOCAL_CFLAGS := -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY LOCAL_CPPFLAGS := -frtti -fexceptions LOCAL_C_INCLUDES := $(LOCAL_PATH)/include LOCAL_SRC_FILES := \ AbstractObserver.cpp \ ActiveDispatcher.cpp \ adler32.c \ ArchiveStrategy.cpp \ Ascii.cpp \ ASCIIEncoding.cpp \ AsyncChannel.cpp \ AtomicCounter.cpp \ Base64Decoder.cpp \ Base64Encoder.cpp \ BinaryReader.cpp \ ... ``` 这里,我们定义了 POCO Foundation 模块,并指定了编译选项和源文件。 我们可以使用 `ndk-build` 命令编译 POCO: ``` ndk-build NDK_DEBUG=1 ``` 这里,我们使用 `ndk-build` 命令编译 POCO,并指定了调试模式。 编译 POCO 在 Android 平台下需要使用 NDK,并需要修改 `./Foundation/Makefile` 文件,删除 `FPEnvironment` 行,另外还需要添加工具链和修改 Android.mk 文件。
- yizhangxyz2013-09-29还是没能解决问题~
- qijikong2014-11-06确实和doc说的差不多,不过英文不好的,还是挺有帮助的
- Angle_欣2013-06-18不错,不过和官网的一样,可直接去官网查看相关文档
- 粉丝: 0
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助