linux和MAC下静态库.a文件合并
这两天开发群了讨论了一个文体,如何合并众多的.a文件。
有人给了建议,使用ar 解.a,生成.o。然后合并所有的.o文件。
我在MAC OS下尝试了一下。
正好赶上编译了ffmpeg的IOS armv7版本,生成了armv7/lib/
Sep : libavcodec.a
Sep : libavformat.a
Sep : libavutil.a
Sep : libswscale.a
Sep : pkgconfig
使用ar命令,将这四个.a文件都解出.o文件
ar x libavcodec.a
ar x libavformat.a
ar x libavutil.a
ar x libswscale.a
然后ls 就可以看出,生成了很多.o文件。
下一步来合并.o文件,命令如下
ar cru libffmpeg.a *.o
别忘了还有ranlib命令,更新库的符号表
ranlib libffmpeg.a
最后,看一下使用ranlib后,文件MD5确实不一样了。
mikumatoMac-mini:lib gyc$ ll libffmpeg.a
-rw-r--r-- gyc staff Sep : libffmpeg.a
mikumatoMac-mini:lib gyc$ md5 libffmpeg.a
MD5 (libffmpeg.a) = b988179f58e87888fba85fb5038cb9a2
mikumatoMac-mini:lib gyc$ ranlib libffmpeg.a
ranlib: file: libffmpeg.a(os_support.o) has no symbols
mikumatoMac-mini:lib gyc$ md5 libffmpeg.a
MD5 (libffmpeg.a) = d08086ad81679287c3e27af69f354607
mikumatoMac-mini:lib gyc$ ll libffmpeg.a
-rw-r--r-- gyc staff Sep : libffmpeg.a
提示:
1.
--enable-pic build position-independent code
windows下dll或者dll和exe,也有合并的方法,ILMerge
http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx
但是,我尝试过,并没有得到较好的结果。原因有待以后查明。
linux和MAC下静态库.a文件合并的更多相关文章
- Linux下静态库生成和使用
Linux下静态库生成和使用 一.静态库概念 1.库是预编译的目标文件(object files)的集合,它们可以被链接进程序.静态库以后缀为”.a”的特殊的存档(archive file)存储. ...
- linux下静态库和动态库一些东西
http://www.cnblogs.com/changefuture/archive/2011/12/22/2297460.html Linux 动态链接库和静态库示例 文件预览 文件目录树如下, ...
- zt:我使用过的Linux命令之ar - 创建静态库.a文件
我使用过的Linux命令之ar - 创建静态库.a文件 本文链接:http://codingstandards.iteye.com/blog/1142358 (转载请注明出处) 用途说明 创建静 ...
- iOS中静态库-.a文件生成和使用
最近在使用使用一个网上的Demo的时候. 出现另一令人烦恼的问题 . 就是它里面有嵌套的工程. 如下图所示. 工程里面还嵌套有一个工程. 真的是让人煞费苦心 …其实这个问题看起来并不是很难, 如果是一 ...
- linux中C的静态库和动态库分析
从开始学C语言写第一个"hello world"历程到现在,我依然困惑于到底这个程序完整的执行流程是什么样的.不过,现在我正在尝试一点一点的揭开它的面纱.现在,我尝试分析linux ...
- Windows下静态库与动态库的创建与使用
Windows下静态库与动态库的创建与使用 学习内容:本博客介绍了Windows下使用Visual C++ 6.0制作与使用静态库与动态库的方法. --------CONTENTS-------- 一 ...
- iOS 打包静态库.a文件(真机版 + 虚拟机)
我们以打包IOS开发中封装的高地地图基础功能包 GDMap为例. 1>我们需要准备好需要打包的GDMap 2>接下来我们开始新建一个工程文件取名GDMap 3>删掉无 ...
- Windows下静态库的制作与使用
参考 静态链接 VS 动态链接 静态库 VS 动态库 实验环境 OS:Windows10 企业版 IDE:Visual Studio 2017旗舰版 前言 静态链接库与动态链接库都是共享代码的方式,如 ...
- iOS静态库.a文件制作和导入使用
iOS静态库.a文件制作: 1.新建Cocoa Touch Static Library工程 新建工程 - 选择iOS-FrameWork&Libary,选择 Cocoa Touch Stat ...
随机推荐
- mysql(转)
/* 启动MySQL */net start mysql /* 连接与断开服务器 */mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权限验证登录MySQL */mysqld ...
- navigationController Pop回指定页面
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIn ...
- 解决iphone safari上的圆角问题
-webkit-appearance : none ; /*解决iphone safari上的圆角问题*/
- 如何确定照片是否被PS过
除了用软件,还可以先右键属性----解除锁定----重新打开属性看详细信息.
- DJANGO模板的BLOCK自定义技巧
除了INCLUDE, EXTENDS基本的继承模板之外,如果想在本模板上,直接生成让同类页面继承的模板, 则可以需要自定义的地方实现自定义BLOCK, 先在本页面实现自己的BLOCK,然后,在继承的页 ...
- POJ2301+水~~~~~~
有比这更水的么.............. #include<stdio.h> int main(){ int n; scanf("%d",&n); while ...
- *[codility]ArrayInversionCount
http://codility.com/demo/take-sample-test/arrayinversioncount 求逆序对数,归并排序并记录逆序次数. // you can also use ...
- TCP 协议如何保证可靠传输
一.综述 1.确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传. 2.数据校验 3.数据合理分片和排序: UDP:IP数据报大于1500字节,大于MTU.这个时候发送方IP层 ...
- C 语言函数指针
c代码: #include <stdio.h> int add(int x,int y); int subtract(int x,int y); int domath(int (*math ...
- 如何使用MIME类型
今天在使用System.Net.WebClient做一个下载的时候,很郁闷,已经发不好的文件视频,却怎么也下载不了. 究其原因有两个, System.Net.WebClient对象的DownloadF ...