编译WebRTC.a静态库

编译的方式,我看了几个帖子,什么方法都有,这里我根据我的需求,说说我的做法。我的主要目的是因为网上找不到.a模式的webrtc的静态库,都是framework,所以我才自己编译的。我的需求很简单,就是需要.a出来。ios版本的webrtc是有自己的编译脚本文件的,我们在这里面做些修改就可以,脚本文件的路径是:webrtc_build/webrtc/src/tools_webrtc/ios/build_ios_libs.sh

正常情况,如果你不做任何更改,直接执行这个脚本,会编译出WebRTC.framework,默认路径会在:webrtc_build/webrtc/src/out_ios_libs  由于我没有编译framework,所以没有图,但是我猜测的话,应该会有真机的32位和64位的还有模拟器的,因为我编译的.a就是这几个。

所以如果你需要去掉不要的版本,还有你需要编译的.a,在这几个地方更改下就可以,记得更改是在webrtc_build/webrtc/src/tools_webrtc/ios/build_ios_libs.py

看清楚后缀 看清楚后缀 看清楚后缀是py

 
 

arm64真机64位,个人觉得编这个就够了其实.....别的都可以删掉,剩下的是arm是真机32位,x64模拟器64位,x86模拟器32位,根据个人需要删减。建议大家先备份啊!!

之后的default位置后面改成'static_only'这个大家看到help也知道意思了,我这个图是改了后的,之前是default='framework'

脚本对于我来说更改这些就行,如果有其他的需要的话大家可以多研究研究其他的选项。

这里更改完后保存退出。

然后执行

./build_ios_libs.sh

就开始一顿编辑....这个时间不算短,我的机器应该有个20分钟左右。

编译成功以后,你可以在这个地方找到你的.a静态库

webrtc_build/webrtc/src/out_ios_libs

 
 

因为我当时忘记删除不要的架构,所以把4个都编出来了,如果你只编一个,时间会节省不少,这里根据你自己的需要,拿去用就好了。还有目前我找到的头文件的位置貌似这个

webrtc_build/webrtc/src/sdk/objc/Framework/Headers/WebRTC

 
 

之后,把.a静态库和头文件拖进你的项目里去使用就好了,当然是建议建个专门的文件夹来存放.a和头文件,记得在xcode中设置build setting里的Header search path 还有设置bitcode为no,静态库使用的时候,需要引入其他一些依赖:

 
 

不引用的话,项目编译期就会报错。github上有很多开源的Demo,本篇主要是为了解决需要.a静态库的朋友,以及一些当前下载编译可行简便的方法。后续如果有新的体验会更新,有问题大家可以留言。

写这篇文章的时候,借鉴了如下的文章,有兴趣的可以也去看看:

iOS下载、编译WebRTC及demo   //这篇文章最后说了framework的集成,需要freamwork怎么集成到项目里的可以看下

WebRTC iOS&OSX 库的编译  //我是从这篇文章确定了新的源码库也是可以编译出.a的,才下了决心去下6个G

iOS - 编译WebRTC.a静态库的更多相关文章

  1. iOS——为Xcode编译POCO C++静态库

    一.POCO C++ library简介 POCO C++ library是一个C++编写的跨平台库,主要实现网络连接.数据库管理以及服务器,适用于跨平台.嵌入式. 二.为Xcode编译POCO C+ ...

  2. iOS开发拓展篇—静态库

    iOS开发拓展篇—静态库 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.库的分类 根据源代码的公开情况,库可以分为2种类型 (1)开源库 公开源代码,能看到具体实现 ...

  3. 【转】iOS开发拓展篇—静态库

    原文网址:http://www.cnblogs.com/wendingding/p/3893095.html iOS开发拓展篇-静态库 一.简单介绍 1.什么是库? 库是程序代码的集合,是共享程序代码 ...

  4. android开发 NDK 编译和使用静态库、动态库 (转)

    在eclipse工程目录下建立一个jni的文件夹 在jni文件夹中建立Android.mk和Application.mk文件 Android.mk文件: Android提供的一种makefile文件, ...

  5. iOS开发中使用静态库 .a 文件

    ​​iOS开发中,在使用一些第三方库时,可能是一个静态库(比如GPUImage).这种情况下,需要编译出静态库文件(.a) ,然后配合响应的头文件(.h 文件)使用. 编译静态库,直接在Xcode中编 ...

  6. iOS实用技能扩展-静态库的制作与简单使用

    前言:此文是关于静态库的概念描述,如何制作及简单调试使用,不同版本的说明与场景使用. 1.关于库的简介: 库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetw ...

  7. FFmpeg笔记:使用MSVC工具链编译Windows版本静态库、动态库

    2019年3月开始,为了将音视频编解码功能集成到Cocos2d-x中,开始接触到FFmpeg: 当时开发环境还在Mac下,编译FFmpeg相比现在用Windows平台要方便的多: 最近,公司内部有个U ...

  8. [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)

    在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...

  9. VS2010编译链接openssl静态库

    最近工作需要使用一些加密算法.之前尝试过cryptopp以及polarssl,听说openssl中的加密模块特别全,并且特别好用.于是想尝试一下. 一.环境配置 下载openssl,我这里使用的是op ...

随机推荐

  1. SDN阅读作业(二)

    前言碎碎念 当我看到这个全英论文以后,身体和心理都出现了戒断反应,让人无比难受,毕竟自己很久没做过英语阅读理解了.总之,在舍友大佬的帮助下以及各款翻译软件的鼎力支持之下(通篇读完后还是找了中文文献来对 ...

  2. ubuntu之路——day11.7 end-to-end deep learning

    在传统的数据处理系统或学习系统中,有一些工作需要多个步骤进行,但是端到端的学习就是用一个神经网络来代替中间所有的过程. 举个例子,在语音识别中: X(Audio)----------MFCC----- ...

  3. idea乱码问题

    ## 1. 文件中内容中文乱码 这个原因是文件的编码和项目的编码不一致导致,将项目工程和文件的编码设置成一致的(如,文件编码是GBK,那就都设置为GBK,若为UTF-8就都设置为UTF-8) ## 2 ...

  4. Beta3冲刺

    队名:福大帮 组长博客链接: 作业博客 : https://edu.cnblogs.com/campus/fzu/SoftwareEngineeringClassAofFuzhouUniversity ...

  5. ZooKeeper和ZAB协议

    前言 ZooKeeper是一个提供高可用,一致性,高性能的保证读写顺序的存储系统.ZAB协议为ZooKeeper专门设计的一种支持数据一致性的原子广播协议. 演示环境 $ uname -a Darwi ...

  6. [web 前端] Npm package.json与package-lock.json文件的作用

    本文链接:https://blog.csdn.net/u013992330/article/details/81110018 最新版nodejs中,多了一个package-lock.json文件,刚开 ...

  7. 011 @Retryable的使用

    一:概述 在调用第三方接口或者使用mq时,会出现网络抖动,连接超时等网络异常,所以需要重试. 为了使处理更加健壮并且不太容易出现故障,后续的尝试操作,有时候会帮助失败的操作最后执行成功. 例如,由于网 ...

  8. Amazon | OA 2019 | Optimal Utilization

    Given 2 lists a and b. Each element is a pair of integers where the first integer represents the uni ...

  9. rrr

    # coding:utf-8 import pika username = 'feng' password = 'nihao' host = '192.168.1.144' credentials = ...

  10. 强化学习——如何提升样本效率 ( DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!)

    强化学习     如何提升样本效率 参考文章: https://news.html5.qq.com/article?ch=901201&tabId=0&tagId=0&docI ...