1础倍,下載lame庫(kù) https://sourceforge.net/projects/lame/files/lame/.?自己選擇一個(gè)版本進(jìn)行編譯吧烛占,我一般都是選擇最新的
2,下載build的腳本沟启,
https://github.com/kewlbear/lame-ios-build
下載之后得到build-lame.sh拷貝到文件夾 自己下載之后解壓的lame庫(kù)? 比如我建立的桌面 /Users/djy/Destop/mp3lib/下
3忆家,修改你解壓的lame目錄名稱(chēng)(它本來(lái)是帶有版本號(hào)的,要改成lame德迹,因?yàn)樵谶@個(gè)build-lame.sh腳本中是指定了名稱(chēng)為lame芽卿,當(dāng)然你也可以修改腳本中名稱(chēng));
4打開(kāi)Terminals胳搞,
輸入
cd /Users/djy/Destop/mp3lib/?
chmod 777 build-lame.sh? (這步要做卸例,不然會(huì)告訴你找不到這個(gè)文件,這是改變這個(gè)文件的讀寫(xiě)權(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 路徑問(wèn)題終端運(yùn)行下djy$ xcode-select --print-path
/Library/Developer/CommandLineTools
出來(lái)了這個(gè)東西呜舒,xcode命令行工具,估計(jì)是最近你安裝過(guò)命令行工具笨奠,或者你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
開(kāi)始編譯,編譯完成之后到腥。生成fat-lame目錄和thin-lame目錄朵逝,分別存放合并所有指令集的靜態(tài)庫(kù),以及各指令集的靜態(tài)庫(kù).
根據(jù)所需乡范,copy lame.h和libmp3lame.a文件到project里配名,就可以正常使用了。
7篓足,查看.a庫(kù)支持的指令集段誊。
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)庫(kù)被合并成一個(gè)靜態(tài)庫(kù)
FAT="fat-lame"
# SCRATCH是下載lame源碼包贴彼,解壓后的目錄潜腻,必須是絕對(duì)路徑
SCRATCH="/Users/8wm/Desktop/lame"
# must be an absolute path
# THIN 各自指令集build后輸出的靜態(tài)庫(kù)所在的目錄,每個(gè)指令集為一個(gè)靜態(tài)庫(kù)
THIN=`pwd`/"thin-lame"