首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS webRTC库支持armv7和arm64

iOS webRTC库支持armv7和arm64
EN

Stack Overflow用户
提问于 2015-02-10 08:53:11
回答 3查看 3K关注 0票数 5

如何获得webRTC库,它将支持iOS中的armv7和arm64?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-02-10 09:42:51

你很幸运。我刚刚完成了将webrtc集成到我的项目中几天。我的解决办法如下:

  1. 将为armv7构建的所有*.a合并到libWebRTC-armv7.a:使用命令行如下所示 src/out_ios_armv7/Release-iphoneos/libWebRTC-temp.a src/out_ios_armv7 7/ -static -iphoneos/*.a src/out_ios_armv7/Release-iphoneos/libWebRTC-armv7.a src/out_ios_armv7/Release-iphoneos/libWebRTC-temp.a -S -x -o -r
  2. 将为arm64构建的所有*.a合并到libWebRTC-arm64.a: libtool -static -o src/out_ios//libWebRTC-tem.a src/out_ios//*.a src/out_ios/Release-iphoneos/libWebRTC-arm64.a -S -x -o -r src/out_ios//libWebRTC-tem.a
  3. 创建支持libWebRTC的armv7和arm64: lipo src/out_ios_armv7/Release-iphoneos/libWebRTC-armv7.a src/out_ios/Release-iphoneos/libWebRTC-arm64.a -create -output libWebRTC.a

P.s:只需将armv7库构建为与arm64分隔的文件夹:

代码语言:javascript
复制
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
票数 7
EN

Stack Overflow用户

发布于 2015-02-10 09:48:18

你可以参考我们的博客:

http://io.diveinedu.com/2015/02/02/%E7%AC%AC%E4%BA%94%E7%AB%A0-WebRTC%E7%9A%84iOS%E6%A1%86%E6%9E%B6%E7%BC%96%E8%AF%91.html

我已经编写了一个shell脚本,用于将WebRTC源代码构建到一个框架(不包括apprtc信令库)中,以供iOS使用。

如果你看不懂中文,你只要读一下那篇博客里的剧本就够了!啊哈。

代码语言:javascript
复制
./build_webrtc.sh build_all

armv7设备中可能有一个bug。该错误是由VP8解码中的armv7霓虹灯函数中的堆栈过流问题引起的。

您可以确认此修补程序以修复其崩溃:

代码语言:javascript
复制
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的学生刚刚克服并解决了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2015-11-24 23:43:11

谢谢你,这真的很管用..。

...but有个转折..。

...as Omer注意到,可能会出现这样的情况:和libs不能具有相同的结构

当然,我去了WTF...lipo,you...they有什么不一样的结构.我是用这种方式建造的.

但后来我又去查了一遍

  • 我在文件夹中找到了arm64_merged库.

代码语言:javascript
复制
lipo -info lib's_name.a

它报告了armv7和arm64两种类型的存在。迷惑不解然后我..。

代码语言:javascript
复制
lipo -info *.a

...all文库(72个)报告为arm64型,但有2个.

代码语言:javascript
复制
libisac_fix.a
libisac_neon.a

无论出于什么原因,他们都是armv7。当天早些时候,我使用了webrtc的“几天前”克隆。那时,我记得总是只获得70个图书馆。但出于其他原因,我决定

代码语言:javascript
复制
gclient sync

在那之后,我得到了72...as这样的,我只是删除了一分为二的胡说八道。现在这两个fat_libs是不同的类型,我可以成功的脂肪酶。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28427458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档