LoginSignup
3
3

More than 5 years have passed since last update.

iOSでPocoを使うメモ

Posted at

C++のPoco Complete EditionをiOSで使うための手順を書きます。

下準備

※ターミナルで作業します。

  1. workディレクトリを作成する。このディレクトリで作業を行います。
  2. Opensslのビルド
    • OpenSSL-for-iPhoneからダウンロードして、workディレクトリにOpenSSL-for-iPhoneというディレクトリ名で解凍します。
    • OpenSSL-for-iPhone/build-libssl.shを実行します。
    • OpenSSL-for-iPhoneにカレントディレクトリに移動して、OPENSSLDIR=$PWDを実行します。
  3. work/usr_x86ディレクトリを作成します。
  4. work/usr_armディレクトリを作成します。
  5. work/pocoにPocoを解凍します。

Pocoのビルド

Pocoをシュミレータで使用できるようにarmv7とx86のsoファイルをビルドします。

armv7のsoファイルをビルド

  1. pocoディレクトリに移動します。
  2. build/config/iPhoneを編集して、armv6をarmv7に修正します。
  3. ./configure --config=iPhone --static --omit=Data,PageCompiler --prefix=../usr_arm --include-path=$OPENSSLDIR/include --library-path=$OPENSSLDIR/lib --no-samples --no-testsを実行します。
  4. make -s -j 4を実行します。
  5. make installを実行します。

x86のsoファイルをビルド

  1. make distcleanを実行します。
  2. ./configure --config=iPhoneSimulator --static --omit=Data,PageCompiler --prefix=../usr_x86 --include-path=$OPENSSLDIR/include --library-path=$OPENSSLDIR/lib --no-samples --no-testsを実行します。
  3. make -s -j 4を実行します。
  4. make installを実行します。

Universal Binaryを作成

workディレクトリに移動して、以下のスクリプトを実行します。

pocolipo.sh
#!/bin/bash

lipo -create -arch armv7 ./usr_arm/lib/libPocoCrypto.a -arch i386 ./usr_x86/lib/libPocoCrypto.a -output libPocoCrypto.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoCryptod.a -arch i386 ./usr_x86/lib/libPocoCryptod.a -output libPocoCryptod.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoFoundation.a -arch i386 ./usr_x86/lib/libPocoFoundation.a -output libPocoFoundation.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoFoundationd.a -arch i386 ./usr_x86/lib/libPocoFoundationd.a -output libPocoFoundationd.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoNet.a -arch i386 ./usr_x86/lib/libPocoNet.a -output libPocoNet.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoNetd.a -arch i386 ./usr_x86/lib/libPocoNetd.a -output libPocoNetd.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoNetSSL.a -arch i386 ./usr_x86/lib/libPocoNetSSL.a -output libPocoNetSSL.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoNetSSLd.a -arch i386 ./usr_x86/lib/libPocoNetSSLd.a -output libPocoNetSSLd.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoUtil.a -arch i386 ./usr_x86/lib/libPocoUtil.a -output libPocoUtil.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoUtild.a -arch i386 ./usr_x86/lib/libPocoUtild.a -output libPocoUtild.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoXML.a -arch i386 ./usr_x86/lib/libPocoXML.a -output libPocoXML.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoXMLd.a -arch i386 ./usr_x86/lib/libPocoXMLd.a -output libPocoXMLd.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoZip.a -arch i386 ./usr_x86/lib/libPocoZip.a -output libPocoZip.a
lipo -create -arch armv7 ./usr_arm/lib/libPocoZipd.a -arch i386 ./usr_x86/lib/libPocoZipd.a -output libPocoZipd.a

Universal Binaryの.aファイルができますので,実機とシュミレータで使用できます。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3