speex編譯靜態庫for iOS

2021-07-09 03:03:37 字數 1681 閱讀 3473

make install

(在make install執行完成後,在/users/share02/desktop/libogg/這個路徑下面會生成i386的資料夾,在i386下面生成了libogg.a這個檔案,這就是i386環境用的ogg靜態庫)

(如果這個時候你的環境被你打亂,沒有按照順序成功執行,你可以在這裡執行 make distclean,不然你到後面整合靜態庫的時候可能會報都是i386的同乙個靜態庫沒法整合的錯)(我當時就遇到這個問題很蛋疼感覺什麼都是對的就是為什麼編譯成同乙個東西了)

make

make install

(make distclean)

make

make install

(make distclean)

編譯speex

make

make install

(make distclean)

make

make install

(make distclean)

make

make install

(make distclean)

把上門編譯所生成的i386,armv6,armv7的libogg.a整合成乙個整體的(意思是3個環境都可以用的)

speex同理

lipo -create i386/lib/libogg.a armv6/lib/libogg.a armv7/lib/libogg.a -output libogg.a

lipo -create i386/lib/libspeex.a armv6/lib/libspeex.a armv7/lib/libspeex.a -output libspeex.a

lipo -create i386/lib/libspeexdsp.a armv6/lib/libspeexdsp.a armv7/lib/libspeexdsp.a -output libspeexdsp.a

(特別注意第9步,因為在網上沒有任何地方說要編譯第9步的,曾經我也沒執行這步,後面用到編碼函式時候很多報這樣的錯:undefined symbols for architecture i386:

「_speex_preprocess_state_init」, referenced from:

-[speexencoder initwithmode:] in speexencoder.o 意思是沒有定義沒有找到這個函式體,經過幾個小時的反覆檢查還是沒有發現什麼地方不對,懷疑過庫沒編譯完整,懷疑過路徑,懷疑過還差東西以及自己的環境等等,整得很蛋疼,後來google上終於找到乙個國外linux論壇上有人問這個問題說到是沒有編譯speexdsp,speexdsp是擴充套件的庫,後來想辦法編譯這個東西到處找,沒找到,結果無意在編譯好的speex中的i386檔案下發現已經編譯好了speexdsp,加入工程ok沒問題了,所以才有第9步把dsp整合成乙個靜態庫,加入工程,呵呵不容易啊坑爹啊)

(注意上面2句執行的時候一定要cd到各自的目錄下面去執行,同時提醒記得ogg編譯完後編譯speex記得換目錄,別粗心大意。執行完上面2句整合過後我們就能夠在ogg和speex目錄下面找到我們所需要libogg.a和libspeex.a靜態庫)

把上門編譯所生成的i386,armv6,armv7的libogg.a整合成乙個整體的(意思是3個環境都可以用的)

speex同理,首先我們要注意的是,一次性順序編譯

好終於寫完了,希望對大家有用!

編譯speex過程

部分內容參考 一 作者使用的speex版本是 speex 1.2rc2,speexdsp版本是 speexdsp 1.2rc3 其中,speex是用來進行音訊的編碼和解碼,speexdsp是用來進行回音抑制,噪音消除等附加功能。二 一些重要檔案 testdenoise 測試libspeexdsp中的...

編譯speex移植

2 解壓 tar zxvf speex 1.2.0.tar.gz 3 配置 cd speex 1.2.0 configure build arm linux gnueabihf host arm linux cc arm buildroot linux gnueabihf 4 編譯 make 在li...

編譯靜態庫編譯動態庫

編譯靜態庫 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將源 編譯成...