什么是poco c++
1.一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa;
2.侧重于互联网时代的网络应用程序
3.使用高效的,现代的标准ANSI/ISO C++,并基于STL
4.高可移值性,并可在多个平台下可用
5.开源,并使用Boost Software License发布
6.不管是否商用,都完全免费
编译供iOS使用的静态库
在iOS开发中主要有iPhone模拟器和iPhone真机以及运行Xcode本身的架构,分别对应的架构为
1.模拟器:iPhone5 及以下的模拟器版本为 i386,iPhone5以上的模拟器架构是x86_64
2.真机: armv7 , armv7s, arm64
3.OSX 的架构是x86_64
编译器的选择:
设置Xcode自带的编译器,方法: 在下载的源码中找到poco-1.7.8-all/build/config/iPhone,用文本编辑器或者Xcode打开,将原来的CC与CXX修改为Xcode自带的编译器的路径:
CC =/Applications/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang
CXX =/Applications/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++
打开终端,进入源码文件,针对各种架构静态库的编译:
1.armv7
./configure --config=iPhone-clang-libc++ --no-tests --no-samples --omit=Data/MySQL,Data/ODBC --static --include-path=/usr/local/openssl/include --prefix=/Users/"用户名"/Desktop/Xcode-poco/armv7
make IPHONE_SDK_VERSION_MIN=5.0 POCO_TARGET_OSARCH=armv7 install
2.armv7s
./configure --config=iPhone-clang-libc++ --no-tests --no-samples --omit=Data/MySQL,Data/ODBC --static --include-path=/usr/local/openssl/include --prefix=/Users/"用户名"/Desktop/Xcode-poco/armv7s
make IPHONE_SDK_VERSION_MIN=5.0 POCO_TARGET_OSARCH=armv7s install
3.arm64
./configure --config=iPhone-clang-libc++ --no-tests --no-samples --omit=Data/MySQL,Data/ODBC --static --include-path=/usr/local/openssl/include --prefix=/Users/"用户名"/Desktop/Xcode-poco/arm64
make IPHONE_SDK_VERSION_MIN=5.0 POCO_TARGET_OSARCH=armv64 install
4.i386
./configure --config=iPhoneSimulator-clang-libc++ --no-tests --no-samples --omit=Data/MySQL,Data/ODBC --static --include-path=/usr/local/openssl/include --prefix=/Users/"用户名"/Desktop/Xcode-poco/i386
make IPHONE_SDK_VERSION_MIN=5.0 POCO_TARGET_OSARCH=i386 install
5.x86_64
./configure --config=iPhoneSimulator-clang-libc++ --no-tests --no-samples --omit=Data/MySQL,Data/ODBC --static --include-path=/usr/local/openssl/include --prefix=/Users/"用户名"/Desktop/Xcode-poco/iPhoneSimulator-x84_64
make IPHONE_SDK_VERSION_MIN=5.0 POCO_TARGET_OSARCH=x86_64 install
说明:
*--config 配置编译脚本,由于Xcode的C和C++编译器是clang和clang++,因此选择iPhone-clang-libc++脚本;
*--no-tests和--no-samples 表示不编译tests文件和samples文件
*--omit 在这里面配置自己不需要的库文件
*--include-path 用来配置依赖信息,在这里,由于Crypto和NetSSL_OpenSSL模块依赖于openSSL,因此需要配置openSSL的路径
*--static 表示建立静态库文件
*--prefix 配置编译好的库文件的存放位置
*IPHONE_SDK_VERSION_MIN 设置支持的iPhone的SDK的最低版本
*POCO_TARGET_OSARCH 设置平台的架构信息
将各种架构的库合并:
lipo -create 需要合并的文件 -output 生成的目标文件;
查看静态库支持的架构:
lipo -info 需要查看的库文件
参考资料: