Mac OS X10.10_xcode6.1_ios8.1環境下でlame静的ライブラリlibmp 3 lameをコンパイルする.a,arm 64 armv 7 s x 86_をサポート64 i 386 armv 7命令セット


最近、Mac OS X 10.10にシステムをアップグレードし、XCode 6を更新しました.1とiOS 8.1
以前appで使ったlibmp 3 lame.aスタティックライブラリは、64ビットのシミュレータ(x 86_64)と64ビットのホスト(arm 64)命令セットもサポートする.再コンパイルが必要
下の資料を調べて、以下の手順に従って、いくつかの注釈と変更をしました.
1.http://sourceforge.net/projects/lame/files/lame/3.99/lameの最新バージョンをダウンロードして1つのフォルダに解凍して例えばlame、全経路は以下の通りです/Users/8 wm/Desktop/lame
2.buildのスクリプトをダウンロードして、私のここで使うのは国外の1人の友达の分かち合いです
https://github.com/kewlbear/lame-ios-build
ダウンロードしてlame-build.shフォルダ/Users/8 wm/Desktop/lameにコピー
3.bbeditまたは他のエディタでこのスクリプトを開き、コメントに従って変更します.
4.Terminalsを開き、
入力
cd/Users/8wm/Desktop/lame
chmod 777 lame-build.sh
sudo -s#
システムパスワードの入力
./lame-build.sh
コンパイルを開始し、コンパイルが完了したら.fat-lameディレクトリとthin-lameディレクトリを生成し、すべての命令セットを統合する静的ライブラリと、各命令セットの静的ライブラリをそれぞれ格納する.
必要に応じてcopy lame.hとlibmp 3 lame.aファイルをプロジェクトに入れると、正常に使用できます.
コマンドラインを使用して、別のライブラリでサポートされているコマンドセットを表示できます.
lipo -info libmp3lame.a
Architectures in the fat file: libmp3lame.a are: armv7 armv7s i386 x86_64 arm64
以下はbuildのスクリプトです.黄色い字と注釈に注意してください.
#!/bin/sh

make distclean

CONFIGURE_FLAGS="--disable-shared --disable-frontend"

ARCHS="arm64 armv7s x86_64 i386 armv7"

# directories
# SOURCE lame , , sh ,source ""
SOURCE=""
# FAT build , , 
FAT="fat-lame"

# SCRATCH lame , , 
SCRATCH="/Users/8wm/Desktop/lame"
# must be an absolute path
# THIN  build , 
THIN=`pwd`/"thin-lame"

COMPILE="y"
LIPO="y"

if [ "$*" ]
then
	if [ "$*" = "lipo" ]
	then
		# skip compile
		COMPILE=
	else
		ARCHS="$*"
		if [ $# -eq 1 ]
		then
			# skip lipo
			LIPO=
		fi
	fi
fi

if [ "$COMPILE" ]
then
	CWD=`pwd`
	echo "$CWD/$SOURCE........."
	for ARCH in $ARCHS
	do
		echo "building $ARCH..."
		mkdir -p "$SCRATCH/$ARCH"
		cd "$SCRATCH/$ARCH"

		if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]
		then
		    PLATFORM="iPhoneSimulator"
		    if [ "$ARCH" = "x86_64" ]
		    then
		    	SIMULATOR="-mios-simulator-version-min=7.0"
                        HOST=x86_64-apple-darwin
		    else
		    	SIMULATOR="-mios-simulator-version-min=5.0"
                        HOST=i386-apple-darwin
		    fi
		else
		    PLATFORM="iPhoneOS"
		    SIMULATOR=
                    HOST=arm-apple-darwin
		fi

		XCRUN_SDK=`echo $PLATFORM | tr '[:upper:]' '[:lower:]'`
		CC="xcrun -sdk $XCRUN_SDK clang -arch $ARCH"
		#AS="$CWD/$SOURCE/extras/gas-preprocessor.pl $CC"
		CFLAGS="-arch $ARCH $SIMULATOR"
		CXXFLAGS="$CFLAGS"
		LDFLAGS="$CFLAGS"

		CC=$CC $CWD/$SOURCE/configure \
		    $CONFIGURE_FLAGS \
                    --host=$HOST \
		    --prefix="$THIN/$ARCH" \
                    CC="$CC" CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS"

		make -j3 install
		cd $CWD
	done
fi

if [ "$LIPO" ]
then
	echo "building fat binaries..."
	mkdir -p $FAT/lib
	set - $ARCHS
	CWD=`pwd`
	cd $THIN/$1/lib
	for LIB in *.a
	do
		cd $CWD
		lipo -create `find $THIN -name $LIB` -output $FAT/lib/$LIB
	done

	cd $CWD
	cp -rf $THIN/$1/include $FAT
fi