3

我想知道是否有人知道如何在 XCode 中为 iPhone SDK 配置 FreeType。我一直在尝试没有成功。

4

3 回答 3

4

理想情况下,您将希望使用最新的工具进行构建,并且从 iOS 6.0 SDK 版本开始,最低 SDK 版本为 4.3,并使用 armv7 和 armv7s 构建。

这是我用来为 iOS 构建 freetype 2.4.10 的方法。从 freetype 2.4.10 源的根目录,执行:

mkdir build-armv7

./configure --prefix=./build-armv7 --host=arm-apple-darwin --enable-static=yes --enable-shared=no \
CPPFLAGS="-arch armv7 -fpascal-strings -Os -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=4.3 -I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include/libxml2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk" \
CC=`xcrun -sdk iphoneos -find clang` \
CFLAGS="-arch armv7 -fpascal-strings -Os -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=4.3 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk" \
LD=`xcrun -sdk iphoneos -find ld` \
LDFLAGS="-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -miphoneos-version-min=4.3" \
AR=`xcrun -sdk iphoneos -find ar`

make
make install

接下来,清理构建目录,并为 armv7s 再次构建:

make clean
mkdir build-armv7s

./configure --prefix=./build-armv7s --host=arm-apple-darwin --enable-static=yes --enable-shared=no \
CPPFLAGS="-arch armv7s -fpascal-strings -Os -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=4.3 -I/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/include/libxml2 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk" \
CC=`xcrun -sdk iphoneos -find clang` \
CFLAGS="-arch armv7s -fpascal-strings -Os -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=4.3 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk" \
LD=`xcrun -sdk iphoneos -find ld` \
LDFLAGS="-arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk -miphoneos-version-min=4.3" \
AR=`xcrun -sdk iphoneos -find ar`

make
make install

最后,将架构组合成一个二进制文件,并为第二个架构(与第一个架构相同)删除不必要的额外标头等。

xcrun -sdk iphoneos lipo -create -arch armv7 build-armv7/lib/libfreetype.a -arch armv7s build-armv7s/lib/libfreetype.a -output libfreetype_universal.a
rm -rf build-armv7s
mv -f libfreetype_universal.a build-armv7/lib/libfreetype.a
mv build-armv7 build
于 2012-09-26T04:20:52.480 回答
1

我有; 这篇博文帮助很大:

http://robertcarlsen.net/2009/03/25/openframeworks-iphone-libs-593

(另外,谷歌周围有很多做类似事情的例子。

于 2010-04-29T21:33:56.910 回答
1

使用随 Freetype 提供的配置脚本。

mkdir install_dir

如果您正在为模拟器编译:

export CFLAGS = "-arch i386 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk"

./configure --prefix=install_dir

如果您正在为设备编译:

export CFLAGS = "-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk"

./configure --prefix=install_dir --host=arm-apple-darwin

进而

make
make install

您现在将在“install_dir”中找到头文件和库。

'make install' 步骤很重要,因为 configure 将正确设置标题。您不能直接从源代码树中复制或使用它们。

您可以为每个平台(模拟器和设备)构建,然后使用“lipo”工具将这些库组合成一个多架构库。

于 2012-08-08T02:10:16.043 回答