1,下載lame庫 https://sourceforge.net/projects/lame/files/lame/.?自己選擇一個(gè)版本進(jìn)行編譯吧,我一般都是選擇最新的
2,下載build的腳本,
https://github.com/kewlbear/lame-ios-build
下載之后得到build-lame.sh拷貝到文件夾 自己下載之后解壓的lame庫? 比如我建立的桌面 /Users/djy/Destop/mp3lib/下
3,修改你解壓的lame目錄名稱(它本來是帶有版本號(hào)的,要改成lame,因?yàn)樵谶@個(gè)build-lame.sh腳本中是指定了名稱為lame,當(dāng)然你也可以修改腳本中名稱);
4打開Terminals,
輸入
cd /Users/djy/Destop/mp3lib/?
chmod 777 build-lame.sh? (這步要做,不然會(huì)告訴你找不到這個(gè)文件,這是改變這個(gè)文件的讀寫權(quán)限)
sudo ./build-lame.sh? (sudo 最高權(quán)限 執(zhí)行這個(gè)腳本)
5,如果你發(fā)現(xiàn)執(zhí)行之后報(bào)錯(cuò)了,在檢測(cè)scratch-lame目錄下的log日志時(shí)候發(fā)現(xiàn),有錯(cuò)誤xcrun --sdk iphoneos --show-sdk-path
xcrun: error: SDK "iphoneos" cannot be located
別慌,這肯定是你的Xcode 路徑問題終端運(yùn)行下djy$ xcode-select --print-path
/Library/Developer/CommandLineTools
出來了這個(gè)東西,xcode命令行工具,估計(jì)是最近你安裝過命令行工具,或者你mac中存在好幾個(gè)Xcode版本。
再執(zhí)行djy$ xcodebuild -showsdks
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
那我們就指定一下你自己要用那個(gè)Xcode版本路徑djy$ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
6,我們繼續(xù)執(zhí)行? sudo ./lame-build.sh
開始編譯,編譯完成之后。生成fat-lame目錄和thin-lame目錄,分別存放合并所有指令集的靜態(tài)庫,以及各指令集的靜態(tài)庫.
根據(jù)所需,copy lame.h和libmp3lame.a文件到project里,就可以正常使用了。
7,查看.a庫支持的指令集。
lipo -info libmp3lame.a
Architectures in the fat file: libmp3lame.a are: armv7 armv7s i386 x86_64 arm64
或者使用 file libmp3lame.a
djy$ file libmp3lame.a
libmp3lame.a: Mach-O universal binary with 5 architectures: [i386:current ar archive random library] [arm64]
libmp3lame.a (for architecture i386): current ar archive random library
libmp3lame.a (for architecture armv7): current ar archive random library
libmp3lame.a (for architecture armv7s): current ar archive random library
libmp3lame.a (for architecture x86_64): current ar archive random library
libmp3lame.a (for architecture arm64): current ar archive random library
8腳本中 部分命令解析
# directories
# SOURCE是下載lame源碼包,解壓后的目錄,可以把sh腳本放到這個(gè)目錄,source改為””,這里也和放在同級(jí)目錄,什么都不改
SOURCE=""
# FAT是所有指令集build后,輸出的目錄,所有靜態(tài)庫被合并成一個(gè)靜態(tài)庫
FAT="fat-lame"
# SCRATCH是下載lame源碼包,解壓后的目錄,必須是絕對(duì)路徑
SCRATCH="/Users/8wm/Desktop/lame"
# must be an absolute path
# THIN 各自指令集build后輸出的靜態(tài)庫所在的目錄,每個(gè)指令集為一個(gè)靜態(tài)庫
THIN=`pwd`/"thin-lame"