使用Xcode5.1错误编译iOS的libspeex

使用Xcode5.1错误编译iOS的libspeex,ios,xcode,macos,ogg,speex,Ios,Xcode,Macos,Ogg,Speex,另见: 环境:MacOSX10.9.2,Xcode 5.1 有两个shell脚本用于构建libogg和libspeex,它们位于同一目录中。libogg构建脚本如下所示: #!/bin/sh set -xe VERSION="1.3.1" BUILDDIR=`pwd` DESTDIR="libogg-built" ARCHS="i386 x86_64 armv7 armv7s arm64" rm -rf $DESTDIR mkdir $DESTDIR if [ ! -e "libogg-

另见:

环境:MacOSX10.9.2,Xcode 5.1

有两个shell脚本用于构建libogg和libspeex,它们位于同一目录中。libogg构建脚本如下所示:

#!/bin/sh

set -xe

VERSION="1.3.1"
BUILDDIR=`pwd`
DESTDIR="libogg-built"
ARCHS="i386 x86_64 armv7 armv7s arm64"

rm -rf $DESTDIR
mkdir $DESTDIR

if [ ! -e "libogg-$VERSION.zip" ]; then
    curl -LO http://downloads.xiph.org/releases/ogg/libogg-$VERSION.zip
fi

unzip -oq libogg-$VERSION.zip
cd libogg-$VERSION


./configure

for ARCH in $ARCHS;
do
    mkdir -p ../$DESTDIR/$ARCH

    make distclean

    IOSMV="-miphoneos-version-min=4.3"
    case $ARCH in
    arm*)
        if [ $ARCH == "arm64" ]; then
            IOSMV="-miphoneos-version-min=7.0"
        fi
        PATH=`xcodebuild -version -sdk iphoneos PlatformPath`"/Developer/usr/bin:$PATH" \
        SDK=`xcodebuild -version -sdk iphoneos Path` \
        CC="xcrun --sdk iphoneos clang -arch $ARCH $IOSMV --sysroot=$SDK -isystem $SDK/usr/include" \
        CXX="xcrun --sdk iphoneos clang++ -arch $ARCH $IOSMV --sysroot=$SDK -isystem $SDK/usr/include" \
        LDFLAGS="-Wl,-syslibroot,$SDK" \
        ./configure \
            --host=arm-apple-darwin \
        --prefix=$BUILDDIR/$DESTDIR/$ARCH
        ;;
    *)
        PATH=`xcodebuild -version -sdk iphonesimulator PlatformPath`"/Developer/usr/bin:$PATH" \
        CC="xcrun --sdk iphonesimulator clang -arch $ARCH $IOSMV" \
        CXX="xcrun --sdk iphonesimulator clang++ -arch $ARCH $IOSMV" \
        ./configure \
        --prefix=$BUILDDIR/$DESTDIR/$ARCH
        ;;
    esac

    make
    make install
done

make distclean

cd ..
mkdir -p $DESTDIR/universal/lib

INPUT=""
for ARCH in $ARCHS; 
do
    INPUT="$INPUT $DESTDIR/$ARCH/lib/libogg.a"
done
lipo -create $INPUT -output $DESTDIR/universal/lib/libogg.a
#!/bin/sh

set -xe

VERSION="1.2rc1"
BUILDDIR=`pwd`
OGGDIR="libogg-built"
DESTDIR="libspeex-built"
LIBS="libspeex.a libspeexdsp.a"
ARCHS="i386 x86_64 armv7 armv7s arm64"

rm -rf $DESTDIR
mkdir $DESTDIR

if [ ! -e "speex-$VERSION.tar.gz" ]; then
    curl -LO http://downloads.xiph.org/releases/speex/speex-$VERSION.tar.gz
fi

tar zxf speex-$VERSION.tar.gz
cd speex-$VERSION


./configure

for ARCH in $ARCHS;
do
    mkdir -p ../$DESTDIR/$ARCH

    make distclean

    IOSMV="-miphoneos-version-min=4.3"
    case $ARCH in
    arm*)
        if [ $ARCH == "arm64" ]; then
            IOSMV="-miphoneos-version-min=7.0"
        fi
        PATH=`xcodebuild -version -sdk iphoneos PlatformPath`"/Developer/usr/bin:$PATH" \
        SDK=`xcodebuild -version -sdk iphoneos Path` \
        CC="xcrun --sdk iphoneos clang -arch $ARCH $IOSMV --sysroot=$SDK -isystem $SDK/usr/include" \
        CXX="xcrun --sdk iphoneos clang++ -arch $ARCH $IOSMV --sysroot=$SDK -isystem $SDK/usr/include" \
        LDFLAGS="-Wl,-syslibroot,$SDK" \
        ./configure \
        --host=arm-apple-darwin \
        --prefix=$BUILDDIR/$DESTDIR/$ARCH \
        --with-ogg=$BUILDDIR/$OGGDIR/$ARCH
        ;;
    *)
        PATH=`xcodebuild -version -sdk iphonesimulator PlatformPath`"/Developer/usr/bin:$PATH" \
        CC="xcrun --sdk iphonesimulator clang -arch $ARCH $IOSMV" \
        CXX="xcrun --sdk iphonesimulator clang++ -arch $ARCH $IOSMV" \
        ./configure \
        --prefix=$BUILDDIR/$DESTDIR/$ARCH \
        --with-ogg=$BUILDDIR/$OGGDIR/$ARCH
        ;;
    esac

    make
    make install
done

make distclean

cd ..
mkdir -p $DESTDIR/universal/lib

for LIB in $LIBS;
do
    INPUT=""
    for ARCH in $ARCHS;
    do
        INPUT="$INPUT $DESTDIR/$ARCH/lib/$LIB"
    done
    lipo -create $INPUT -output $DESTDIR/universal/lib/$LIB
done
在终端中运行脚本,libogg已成功编译。然后运行libspeex脚本,如下所示:

#!/bin/sh

set -xe

VERSION="1.3.1"
BUILDDIR=`pwd`
DESTDIR="libogg-built"
ARCHS="i386 x86_64 armv7 armv7s arm64"

rm -rf $DESTDIR
mkdir $DESTDIR

if [ ! -e "libogg-$VERSION.zip" ]; then
    curl -LO http://downloads.xiph.org/releases/ogg/libogg-$VERSION.zip
fi

unzip -oq libogg-$VERSION.zip
cd libogg-$VERSION


./configure

for ARCH in $ARCHS;
do
    mkdir -p ../$DESTDIR/$ARCH

    make distclean

    IOSMV="-miphoneos-version-min=4.3"
    case $ARCH in
    arm*)
        if [ $ARCH == "arm64" ]; then
            IOSMV="-miphoneos-version-min=7.0"
        fi
        PATH=`xcodebuild -version -sdk iphoneos PlatformPath`"/Developer/usr/bin:$PATH" \
        SDK=`xcodebuild -version -sdk iphoneos Path` \
        CC="xcrun --sdk iphoneos clang -arch $ARCH $IOSMV --sysroot=$SDK -isystem $SDK/usr/include" \
        CXX="xcrun --sdk iphoneos clang++ -arch $ARCH $IOSMV --sysroot=$SDK -isystem $SDK/usr/include" \
        LDFLAGS="-Wl,-syslibroot,$SDK" \
        ./configure \
            --host=arm-apple-darwin \
        --prefix=$BUILDDIR/$DESTDIR/$ARCH
        ;;
    *)
        PATH=`xcodebuild -version -sdk iphonesimulator PlatformPath`"/Developer/usr/bin:$PATH" \
        CC="xcrun --sdk iphonesimulator clang -arch $ARCH $IOSMV" \
        CXX="xcrun --sdk iphonesimulator clang++ -arch $ARCH $IOSMV" \
        ./configure \
        --prefix=$BUILDDIR/$DESTDIR/$ARCH
        ;;
    esac

    make
    make install
done

make distclean

cd ..
mkdir -p $DESTDIR/universal/lib

INPUT=""
for ARCH in $ARCHS; 
do
    INPUT="$INPUT $DESTDIR/$ARCH/lib/libogg.a"
done
lipo -create $INPUT -output $DESTDIR/universal/lib/libogg.a
#!/bin/sh

set -xe

VERSION="1.2rc1"
BUILDDIR=`pwd`
OGGDIR="libogg-built"
DESTDIR="libspeex-built"
LIBS="libspeex.a libspeexdsp.a"
ARCHS="i386 x86_64 armv7 armv7s arm64"

rm -rf $DESTDIR
mkdir $DESTDIR

if [ ! -e "speex-$VERSION.tar.gz" ]; then
    curl -LO http://downloads.xiph.org/releases/speex/speex-$VERSION.tar.gz
fi

tar zxf speex-$VERSION.tar.gz
cd speex-$VERSION


./configure

for ARCH in $ARCHS;
do
    mkdir -p ../$DESTDIR/$ARCH

    make distclean

    IOSMV="-miphoneos-version-min=4.3"
    case $ARCH in
    arm*)
        if [ $ARCH == "arm64" ]; then
            IOSMV="-miphoneos-version-min=7.0"
        fi
        PATH=`xcodebuild -version -sdk iphoneos PlatformPath`"/Developer/usr/bin:$PATH" \
        SDK=`xcodebuild -version -sdk iphoneos Path` \
        CC="xcrun --sdk iphoneos clang -arch $ARCH $IOSMV --sysroot=$SDK -isystem $SDK/usr/include" \
        CXX="xcrun --sdk iphoneos clang++ -arch $ARCH $IOSMV --sysroot=$SDK -isystem $SDK/usr/include" \
        LDFLAGS="-Wl,-syslibroot,$SDK" \
        ./configure \
        --host=arm-apple-darwin \
        --prefix=$BUILDDIR/$DESTDIR/$ARCH \
        --with-ogg=$BUILDDIR/$OGGDIR/$ARCH
        ;;
    *)
        PATH=`xcodebuild -version -sdk iphonesimulator PlatformPath`"/Developer/usr/bin:$PATH" \
        CC="xcrun --sdk iphonesimulator clang -arch $ARCH $IOSMV" \
        CXX="xcrun --sdk iphonesimulator clang++ -arch $ARCH $IOSMV" \
        ./configure \
        --prefix=$BUILDDIR/$DESTDIR/$ARCH \
        --with-ogg=$BUILDDIR/$OGGDIR/$ARCH
        ;;
    esac

    make
    make install
done

make distclean

cd ..
mkdir -p $DESTDIR/universal/lib

for LIB in $LIBS;
do
    INPUT=""
    for ARCH in $ARCHS;
    do
        INPUT="$INPUT $DESTDIR/$ARCH/lib/$LIB"
    done
    lipo -create $INPUT -output $DESTDIR/universal/lib/$LIB
done
它说./build-libspeex.sh:line 55:-使用ogg=/Users/Smeegol/Desktop/Speex/libogg builded/i386:没有这样的文件或目录,为什么找不到i386,它是在上一步创建的

它说./build-libspeex.sh:line 55:-使用ogg=/Users/Smeegol/Desktop/Speex/libogg builded/i386:没有这样的文件或目录,为什么找不到i386,它是在上一步创建的

它引用了/Users/Smeegol/Desktop/Speex/libogg builded/i386,但在上一步中

lipo-create$INPUT-output$DESTDIR/universal/lib/libogg.a

。。。例如,我在路径名中看到了universal

libogg安装的输出目录应如下所示:

${OGGDIR}/lib/libogg.a
${OGGDIR}/include/<include files here>
。。。前缀行后面缺少\号。

您可以参考

它使用最新的SDK和最新的speex代码编译OK


它是开箱即用的。

欢迎光临。虽然链接可以提供答案,但除了链接外,还需要在帖子中包含答案或主线列表。这样可以确保在移动或删除链接的资源时帖子仍然有用。