编译工作多数都是使用IDE,配置参数较少涉及,因此对这方面不是很熟悉,最近客户端开发中用到了websocket协议,经过调研使用C++开源库POCO,这个库功能很多,接口好用。
直接说安卓平台编译库时遇到的问题及解决方法:
1、编译机器配置好ndk;
2、github上面有编译说明:
https://github.com/pocoproject/poco/blob/master/doc/99300-AndroidPlatformNotes.page
但文章中命令行有误,易误导
$NDK/build/tools/make-standalone-toolchain.sh --arch arm --install-dir=$HOME/my-android-toolchain/arm
其中--arch参数部分应为--arch=arm
$NDK为本机ndk路径,即ndk-build文件的存储路径。
1)$NDK/build/tools/make-standalone-toolchain.sh --arch=arm --install-dir=$HOME/my-android-toolchain/arm
编译x86库应为下面的命令:
$NDK/build/tools/make-standalone-toolchain.sh --arch=x86 --install-dir=$HOME/my-android-toolchain/arm
2)export PATH=$PATH:$HOME/my-android-toolchain/bin
自己需要调整成:export PATH=$PATH:$HOME/my-android-toolchain/arm/bin
3)./configure --config=Android --minimal --static --no-samples --no-tests --cflags=-std=c99
其中--cflags=-std=c99是尝试后添加的参数,否则for循环编译报错
4)make -s -j4 默认编译 <*armeabi*> platform ABI,若想编译指定平台的执行下面的命令:
make -s -j4 ANDROID_ABI=armeabi-v7a
编译x85平台的对应1)中的--arch=x86参数,执行下面的命令:
make -s -j4 ANDROID_ABI=x86
对于编译还不是特别熟,这次稍微多了一些了解,希望后面还能继续加强,以此文章记录一下,方便后面查阅。