2013-07-27 48 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

您应该在CFLAGS中指定-arch armv7s。下面是我用它来构建:

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 

你可以做同样的事情得到你想要的东西。

编辑:如何打电话让铿锵:

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组合起来,以支持我的iOS应用的armv6,armv7和armv7s。

帮助我的原始堆栈溢出帖子:https://stackoverflow.com/a/12836808/761902

由于您试图将ARM(常规iOS设备)和Intel(OS X计算机)体系结构编译为一个文件,因此您可以尝试获取原始文章中指定的crt,libarclite和libclang文件。

由于ARM文件位于 Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/下,

我预计相当于I386文件下 Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/ 被定位,我不知道下,因为我不建平台的i686落在什么的Xcode回想一下之前的看法,但如果它是iPhoneSimulator.platform,它将与i386平台在相同的文件中。

您可能还想将i686和i386添加到您的构建设置。以下是我为armv6,armv7和armv7s构建的架构设置。 Xcode build settings

如果这样不起作用,您还可以分别构建i686,i386和armv7s,并将构建的二进制文件与lipo合并。

相关问题