最近公升級了系統到mac os x 10.10 並且更新了xcode6.1和ios 8.1
查閱了下資料,按照如下步驟,並做了些注釋和改動
/users/8wm/desktop/lame
3.用bbedit或者其他編輯器開啟這個指令碼
,按照注釋修改
4.開啟terminals,
輸入cd
/users/8wm/desktop/lame
chmod lame-build.sh
sudo -s#
輸入系統密碼
./lame-build.sh
開始編譯,編譯完成之後。生成fat-lame目錄和thin-lame目錄,分別存放合併所有指令集的靜態庫,以及各指令集的靜態庫.
根據所需,copy lame.h和
lib***lame.a檔案到
project裡,就可以正常使用了。
可以使用命令列,檢視換個庫支援的指令集。
lipo -info lib***lame.a
architectures in the fat file: lib***lame.a are: armv7 armv7s i386 x86_64 arm64
以下是build的指令碼,請注意黃色的字和注釋。
[plain]view plain
copy
#!/bin/sh
make distclean
configure_flags="--disable-shared --disable-frontend"
archs="arm64 armv7s x86_64 i386 armv7"
# directories
source=""
# fat是所有指令集build後,輸出的目錄,所有靜態庫被合併成乙個靜態庫
fat="fat-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"
else
simulator="-mios-simulator-version-min=5.0"
fi
else
platform="iphoneos"
simulator=
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
編譯靜態庫編譯動態庫
編譯靜態庫 cr標誌告訴ar將object檔案封裝 archive 我們可以使用nm s 命令來檢視.a檔案的內容 ar cr libmyhello.a hello.o 或 cvr 編譯動態庫 gcc c fpic test1.c gcc c fpic test2.c fpic告訴gcc將源 編譯成...
Qt編譯生成靜態庫(靜態編譯)
開發環境 vs2008 qt4.8.4原始碼庫 其他環境請自己嘗試,原理應該是差不多的 qt編譯生成靜態庫1.本教程只針對在win32平台,使用vs開發工具 例子以vs2008為例 2.3.解壓qt源 到目標目錄,如 4.開啟 mkspecs 目錄,找到目標平台的資料夾,如 win32 msvc20...
靜態庫 a編譯和靜態庫 a合併
第一步 生成test.o目標檔案,使用gcc c test.c o test.o命令。第二步 使用ar將test.o打包成libtest.a靜態庫,使用ar rcs o libtest.a test.o命令 第三步 生成libtest.a靜態庫後,可以使用命令ar t libtest.a檢視libt...