iOS 編譯 lame 庫,步驟及遇到的問題 總結(jié)

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"

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容