2013-07-27 2 views
3

я компиляции библиотеки в терминале с помощью следующей команды, чтобы получить ARMv7 срез:Компиляция, чтобы получить armv7s ломтик

./configure CC=/Developer/usr/bin/arm-apple-darwin10-llvm-gcc-4.2 --host=arm 

ПРИМЕЧАНИЕ: Я также изменить LDFLAGS, SYSROOT обеспечить соответствующий путь, хотя я не Покажите, что здесь, чтобы сохранить это короткое.

Я успешно сгенерировал фрагменты кода для: i686, i386 и armv7 и объединил их, но я не могу получить armv7s фрагмент.

Какие настройки я использую для armv7s code slice?

ответ

1

Вы должны указать -arch armv7s в CFLAGS. Ниже то, что я использую, чтобы построить :

INSTALL=`pwd`/.. 

if [ $# -eq 0 ] 
then 
    $0 armv7 iPhoneOS 
    $0 armv7s iPhoneOS 
    $0 i386 iPhoneSimulator 
    mkdir -p $INSTALL/universal/lib 
    cd $INSTALL/armv7/lib 
    for f in *.a 
    do 
     echo $f 
     xcrun -sdk iphoneos lipo -output ../../universal/lib/$f -create -arch armv7 $f -arch armv7s ../../armv7s/lib/$f -arch i386 ../../i386/lib/$f 
    done 
    #cd ../.. 
else 
    echo $1 $2 
    ARCH=$1 
    PLATFORM=$2 
    TOOLCHAIN=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain 
    export CC="$TOOLCHAIN/usr/bin/clang" 
    DEVROOT=/Applications/Xcode.app/Contents/Developer/Platforms/$PLATFORM.platform/Developer 
    SDK=6.1 
    SDKROOT=$DEVROOT/SDKs/$PLATFORM$SDK.sdk 
    export CFLAGS="-arch $ARCH -isysroot $SDKROOT -miphoneos-version-min=5.0 -I/Users/xxx/icu/source/tools/tzcode" 
    export CXXFLAGS="$CFLAGS" 

    gnumake distclean 

    ../../icu/source/configure --host=arm-apple-darwin --enable-static --disable-shared --with-cross-build=/Users/xxx/icu-build/mac --prefix=$INSTALL/$ARCH 

    gnumake 
    gnumake install 
fi 

Вы могли бы сделать что-то подобное, чтобы получить то, что вы хотите.

EDIT: Как позвонить сделать с лязгом:

export CFLAGS=-arch armv7s # add more compiler flags as needed here 
export CC=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang 
make 
+0

Покажите мне, как позвонить сделать с лязгом компилятора и -arch armv7s –

+0

Целевые параметры выбора -arch архитектуры -mmacosx-версия-мин = версия -miphoneos-version-min -march = cpu – pinxue

+0

Отредактированный ответ для добавления некоторого псевдо-примера – cahn

0

Я объединил crt.1.x.x.0, libarclite и libclang Xcode из трех существующих архитектур устройств, чтобы поддерживать armv6, armv7 и armv7s для моего приложения iOS.

Оригинальный столбец переполнения, который мне помог: https://stackoverflow.com/a/12836808/761902.

Поскольку вы пытаетесь скомпилировать ARM (обычное устройство iOS) и архитектуры Intel (OS X computer) в один файл, вы можете попробовать получить файлы crt, libarclite и libclang, указанные в исходном сообщении.

Поскольку ARM файлы находились под Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/,

Я бы ожидать, что эквивалентные i386 файлы, которые будут расположены под Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/ , я не уверен, что Xcode сборки платформы i686 подпадает под, так как я не напомню, что это было раньше, но если это платформа iPhoneSimulator.platform, она будет в тех же файлах, что и платформа i386.

Возможно, вы захотите добавить i686 и i386 в свои настройки сборки. Ниже приведены настройки моей архитектуры для armv6, armv7 и armv7s. Xcode build settings

Если это не работает, вы можете также построить i686, i386 и armv7s отдельно и объединить созданные исполняемые файлы с lipo.

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