2010-04-29 3 views

ответ

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 правильно настроит заголовки. Вы не можете просто копировать или использовать их непосредственно из исходного дерева.

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

4

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

Вот такой метод, который я использовал для создания 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 
+2

Это ТОЧНО, что я ищу. Я побежал, как есть, но он не работал. Я получил ошибку: 'configure: error: ожидается абсолютное имя каталога для -prefix:./Build-armv7'. Поэтому я изменил '-prefix' на это:' $ PWD/build-armv7', запустил команду, и все сработало! Качественный товар! – ageektrapped

Смежные вопросы