Xcode 编译poco c++静态库

什么是poco c++

1.一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa;

2.侧重于互联网时代的网络应用程序

3.使用高效的,现代的标准ANSI/ISO C++,并基于STL

4.高可移值性,并可在多个平台下可用

5.开源,并使用Boost Software License发布

6.不管是否商用,都完全免费

poco官网:https://pocoproject.org, 各release版本https://pocoproject.org/releases/

编译供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 需要查看的库文件

参考资料:

https://www.cnblogs.com/mupiaomiao/p/4707854.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。