Компиляция Freetype для iPhone SDK (XCode) - PullRequest
3 голосов
/ 30 апреля 2010

Мне было интересно, знает ли кто-нибудь, как настроить FreeType в XCode для iPhone SDK. Я пытался безуспешно.

Ответы [ 3 ]

4 голосов
/ 26 сентября 2012

В идеале вы захотите собрать, используя новейшие инструменты, и начиная с выпуска iOS 6.0 SDK, с минимальной версией SDK 4.3 и со сборками для armv7 и armv7s.

Вот методЯ использовал для сборки freetype 2.4.10 для iOS.Из корня исходного кода 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
1 голос
/ 08 августа 2012

Используйте скрипт configure, поставляемый с 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

Теперь вы найдете заголовки и lib в 'install_dir'.

шаг 'make install' важен, так как configure правильно настроит заголовки. Вы не можете просто скопировать или использовать их непосредственно из дерева исходных текстов.

Вы можете построить для каждой платформы (симулятор и устройство), а затем объединить библиотеки в одну библиотеку multi-architechture, используя инструмент «lipo».

1 голос
/ 30 апреля 2010

у меня есть; это сообщение в блоге очень помогло:

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

(Плюс, в Google много примеров, которые делают подобные вещи.

...