如何獲取webRTC庫,這將支持armv7 & arm64在iOS?iOS webRTC庫支持armv7和arm64
回答
你很幸運。我剛剛完成將webrtc整合到我的項目中幾天。下面我的解決方案:
將所有* .A你建立對ARMv7到libWebRTC-armv7.a:使用命令行,如下
libtool的-static -o的src/out_ios_armv7 /釋放的iPhoneOS/libWebRTC-temp.a src/out_ios_armv7/Release-iphoneos/*。a
strip -S -x -o src/out_ios_armv7/Release-iphoneos/libWebRTC-armv7.a -r src/out_ios_armv7/Release-iphoneos/libWebRTC-temp.a
將您爲arm64構建的所有* .a合併到libWebRTC-arm64.a:
的libtool -static -o SRC/out_ios /釋放-的iPhoneOS/libWebRTC-temp.a SRC/out_ios /釋放-的iPhoneOS/*。一個
條-S -x -o SRC/out_ios /釋放 - 的iPhoneOS/libWebRTC-arm64.a -r的src/out_ios /釋放-的iPhoneOS/libWebRTC-temp.a
創建libWebRTC支持的ARMv7都和arm64:
脂 - 創建的src/out_ios_armv7 /釋放-的iPhoneOS /libWebRTC-armv7.a src/out_ios/Release-iphoneos/libWebRTC-arm64.a -output libWebRTC.a
PS:只是arm64建立你的ARMv7庫分離的文件夾:
export GYP_GENERATORS="ninja"
export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1 OS=ios target_arch=armv7"
export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios_armv7"
export GYP_CROSSCOMPILE=1
pushd src
gclient runhooks
ninja -C out_ios_armv7/Release-iphoneos AppRTCDemo
popd
你可以參考我們的博客:
我已經寫了一個shell腳本來建立的WebRTC源到iOS使用的框架(不包括apprtc信號庫)。
如果您無法閱讀中文,您只需閱讀該博客中嵌入的腳本,就足夠了!啊哈。
./build_webrtc.sh build_all
armv7設備中可能存在一個錯誤。該錯誤是由armv7霓虹燈功能中的VP8解碼中的堆棧溢出問題引起的。
可以確認這個補丁修復崩潰吧:
diff --git a/source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c b/source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c
index 8308d55..a66b6f5 100644
--- a/source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c
+++ b/source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c
@@ -1003,7 +1003,7 @@ unsigned int vp8_sub_pixel_variance8x8_neon(
const unsigned char *dst,
int dst_stride,
unsigned int *sse) {
- DECLARE_ALIGNED_ARRAY(kAlign16, uint8_t, temp2, kHeight8 * kWidth8);
+ DECLARE_ALIGNED_ARRAY(kAlign16, uint8_t, temp2, kHeight8PlusOne * kWidth8);
DECLARE_ALIGNED_ARRAY(kAlign16, uint8_t, fdata3, kHeight8PlusOne * kWidth8);
if (xoffset == 0) {
var_filter_block2d_bil_w8(src, temp2, src_stride, kWidth8, kHeight8,
願望這可以幫助你!
diveinedu.com的學生剛剛克服並修復了這個bug。
我已經遵循了你的教程,但是當腳本在組合庫armv7和arm64時起作用時,出現錯誤,兩個庫不能具有相同的結構。 另外我嘗試運行在iPhone 6和iPad 3上的arm64構建,我收到的錯誤是無效的體系結構。 – 2015-09-22 13:30:53
感謝phuongle,這還真管用......
...但與一捻...
...正如Omer Waqas Khan注意到的那樣,可能會出現以下情況,即可能會遇到錯誤消息(同時令人驚訝):這兩個庫不能具有相同的結構。
當然,我去跆拳道...脂,這有什麼錯,你......他們是不同結構的...我建立了他們這樣...
但後來我開始仔細檢查它:
- 我在哪裏,我有arm64_merged的lib文件夾中去了,...
lipo -info lib's_name.a
據報道回來的既是ARMv7體系和arm64類型。百思不得其解,我再...
lipo -info *.a
...所有的庫(其中72)報告,除了2是類型arm64的...
libisac_fix.a
libisac_neon.a
無論出於何種原因,他們的ARMv7。 當天早些時候,我正在使用webrtc thingy的「幾天前」克隆。那時候,我記得總是隻能獲得70個圖書館。但隨後,由於其他原因,我決定
gclient sync
在那之後,我結束了72 ......正因爲如此,我只是刪除了libisac無稽之談。現在這兩個fat_lib是不同類型的,我可以成功地使用lipo。
- 1. CorePlot支持arm64?
- 2. 對WebRTC iOS庫的DTLS支持
- 3. Worklight 6.0.0.1 iOS本機庫僅適用於ARMv7,不適用於ARMv7和ARM64?
- 4. 構建armv7,armv7s,arm64,i386和universal的ffmpeg iOS庫
- 5. Zxing不支持arm64
- 6. Theos for armv7 and arm64
- 7. iOS開源構建armv7,armv7s,arm64
- 8. Google Plus iOS SDK是否支持arm64?
- 9. 編譯libical對ARMv7和arm64與cmake的
- 10. 由於Arm64和Armv7造成失敗?
- 11. 支持的ARMv6和ARMv7在同一IPA
- 12. 的WebRTC支持和PhoneGap的
- 13. leptonica 1.69針對iOS(armv7,armv7s和arm64)的交叉編譯
- 14. Webrtc支持Android 5.0
- 15. arm64的ARMv7架構armv7s設置
- 16. OpenBSD for ARMv7不支持SMP
- 17. Swift是否支持WebRTC?
- 18. Lipo在不爲arm64,armv7創建
- 19. 的WebRTC的PaaS同時支持MCU/SFU和Android/iOS的
- 20. iOS解壓縮庫和arm64 archiecture
- 21. 當離子運行ios,提出錯誤正常arm64,armv7
- 22. Kurento瀏覽器/ webRTC支持
- 23. Armv7 + Arm64 fat build與iPhone 4s兼容
- 24. Xcode7 ios9不支持armv7和armv7s架構設備
- 25. 添加arm64支持後出錯
- 26. 如何在Xcode 6刪除arm64支持?
- 27. 如何更新用於支持arm64 Build的靜態庫架構?
- 28. 支持armv6,armv7和armv7s與最新的Dropbox框架構建
- 29. 可可3D ios庫iOS 6,7支持
- 30. 的iOS - XMPP支持WebRTC的實時視頻呼叫或聊天
謝謝phuongle ..它的作品! – Dev 2015-02-12 03:48:20