

iOS向けにfreetypeを作成する方法については、インターネット上で多くのメモがあります。
これらのノートはすべて、共通の特性によって結合されています-それらは機能しません。
実際には、すべての命令はライブラリをビルドするためにgccで動作しますが、Xcode 5からはgccはパッケージに含まれておらず、iOS用にビルドするにはclangを使用する必要があります。
正しくコンパイルする方法に関するメモはありません。
この不正を修正してください。
組立準備
Xcodeを既にダウンロードして設定していることを前提としています
Freetypeはsourceforgeに基づいており、そこから取得します。
結果のアーカイブは、展開することを忘れないでください。
ユニバーサルライブラリを構築するには、異なるパラメータでライブラリのコンパイルを5回繰り返す必要があります。
すべての命令は、freetypeルートディレクトリから実行されます。
i386
$ ./configure --enable-static = yes --enable-shared = no CC = / Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / cc CFLAGS = "-arch i386 -Wno -extended-offsetof -miphoneos-version-min = 4.2 -I / Applications / Xcode.app / Contents / Developer / Platforms / iPhoneSimulator.platform / Developer / SDKs / iPhoneSimulator7.1.sdk / usr / include -isysroot / Applications / Xcode .app /コンテンツ/開発者/プラットフォーム/ iPhoneSimulator.platform /開発者/ SDK / iPhoneSimulator7.1.sdk "CPP = / Applications / Xcode.app /コンテンツ/開発者/ツールチェーン/ XcodeDefault.xctoolchain / usr / bin / cpp AR = /アプリケーション/ Xcode.app /コンテンツ/開発者/ツールチェーン/ XcodeDefault.xctoolchain / usr / bin / ar LDFLAGS = "-arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator7.1.sdk -miphoneos-version-min = 4.2 "
$ make
これらのコマンドを使用して、i386アーキテクチャ用のビルドをセットアップし、ライブラリをビルドします。 結果のライブラリはobjs / .libs / libfreetype.aディレクトリに配置されます
結果のライブラリの名前を変更し、ルートにコピーします。 アセンブリの最後のステップで必要になります。
$ cp objs / .libs / libfreetype.a libfreetype-i386.a
x86_64
同様に、x86_64でビルドし、make cleanコマンドを追加して、前のアセンブリの結果を取り除きます
$ ./configure --enable-static = yes --enable-shared = no CC = / Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / cc CFLAGS = "-arch x86_64 -Wno -extended-offsetof -miphoneos-version-min = 4.2 -I / Applications / Xcode.app / Contents / Developer / Platforms / iPhoneSimulator.platform / Developer / SDKs / iPhoneSimulator7.1.sdk / usr / include -isysroot / Applications / Xcode .app /コンテンツ/開発者/プラットフォーム/ iPhoneSimulator.platform /開発者/ SDK / iPhoneSimulator7.1.sdk "CPP = / Applications / Xcode.app /コンテンツ/開発者/ツールチェーン/ XcodeDefault.xctoolchain / usr / bin / cpp AR = /アプリケーション/ Xcode.app /コンテンツ/開発者/ツールチェーン/ XcodeDefault.xctoolchain / usr / bin / ar LDFLAGS = "-arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ iPhoneSimulator7.1.sdk -miphoneos-version-min = 4.2 "; make clean; make
$ cp objs / .libs / libfreetype.a libfreetype-x86_64.a
armv7
armv7は、iPhone 3GS、iPhone 4、iPhone 4Sで使用されています。 クロスコンパイル用のパラメーターを追加します。
$ ./configure --host = arm-apple-darwin --enable-static = yes --enable-shared = no CC = / Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / cc CFLAGS = "-arch armv7 -pipe -std = c99 -Wno-extended-offsetof -Wno-trigraphs -fpascal-strings -O2 -Wreturn-type -Wunused-variable -fmessage-length = 0 -fvisibility = hidden -miphoneos- version-min = 4.2 -I / Applications / Xcode.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / iPhoneOS7.1.sdk / usr / include -isysroot /Applications/Xcode.app/Contents/Developer/プラットフォーム/ iPhoneOS.platform /開発者/ SDK / iPhoneOS7.1.sdk "AR = / Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / ar LDFLAGS ="-arch armv7 -isysroot / Applications /Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min = 4.2 "
$ make clean; make
$ cp objs / .libs / libfreetype.a libfreetype-arm7.a
armv7s
armv7sは、iPhone 5、iPhone 5Sで使用されています。 構成は最小限です。
$ ./configure --host = arm-apple-darwin --enable-static = yes --enable-shared = no CC = / Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / cc CFLAGS = "-arch armv7s -pipe -std = c99 -Wno-extended-offsetof -Wno-trigraphs -fpascal-strings -O2 -Wreturn-type -Wunused-variable -fmessage-length = 0 -fvisibility = hidden -miphoneos- version-min = 5.0 -I / Applications / Xcode.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / iPhoneOS7.1.sdk / usr / include -isysroot /Applications/Xcode.app/Contents/Developer/プラットフォーム/ iPhoneOS.platform /開発者/ SDK / iPhoneOS7.1.sdk "AR = /アプリケーション/ Xcode.app /コンテンツ/開発者/ツールチェーン/ XcodeDefault.xctoolchain / usr / bin / ar LDFLAGS ="-arch armv7s -isysroot /アプリケーション/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min = 5.0 "
$ make clean; make
$ cp objs / .libs / libfreetype.a libfreetype-arm7s.a
arm64
この執筆時点で、arm64は最新のアーキテクチャです。
$ ./configure --host = arm-apple-darwin --enable-static = yes --enable-shared = no CC = / Applications / Xcode.app / Contents / Developer / Toolchains / XcodeDefault.xctoolchain / usr / bin / cc CFLAGS = "-arch arm64 -pipe -std = c99 -Wno-extended-offsetof -Wno-trigraphs -fpascal-strings -O2 -Wreturn-type -Wunused-variable -fmessage-length = 0 -fvisibility = hidden -miphoneos- version-min = 6.0 -I / Applications / Xcode.app / Contents / Developer / Platforms / iPhoneOS.platform / Developer / SDKs / iPhoneOS7.1.sdk / usr / include -isysroot /Applications/Xcode.app/Contents/Developer/プラットフォーム/ iPhoneOS.platform /開発者/ SDK / iPhoneOS7.1.sdk "AR = /アプリケーション/ Xcode.app /目次/開発者/ツールチェーン/ XcodeDefault.xctoolchain / usr / bin / ar LDFLAGS ="-arch arm64 -isysroot /アプリケーション/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk -miphoneos-version-min = 6.0 "
$ make clean; make
$ cp objs / .libs / libfreetype.a libfreetype-arm64.a
重要です
iPhoneOS7.1.sdkを、現在インストールされているSDKのバージョンに変更することを忘れないでください。 執筆時点では7.1が現在のバージョンですが、頻繁に更新されるため、このマニュアルを読むまでにバージョンがすでに変更されている可能性があります。
ユニバーサルライブラリを構築する
ルートには5つのライブラリがあります。
それらを1つのユニバーサルライブラリに収集する必要があります。 これを行うには、リポツールを使用します。
$ lipo -create -output libfreetype.a libfreetype-i386.a libfreetype-x86_64.a libfreetype-arm7.a libfreetype-arm7s.a libfreetype-arm64.a
さて、ルートには待望のlibfreetype.aがあり、必要なすべてのアーキテクチャをサポートしています。
まあ、それだけです。 結果のライブラリをXcodeプロジェクトに追加して、作業します!
頑張って