`
xitonga
  • 浏览: 583277 次
文章分类
社区版块
存档分类
最新评论

多个静态库合并

 
阅读更多


这个方法适合下面的问题

  1. 合并多个静态库。
  2. 静态库的多级依赖。
  3. 静态库级联调用,导致链接错误。
  4. 。。。。。。

第一步:生成静态库文件
echo CREATE lib-static.a > ar.mac  回车
echo SAVE >> ar.mac 回车
echo END >> ar.mac 回车
ar -M < ar.mac  

第二步:加入.o文件至静态库
ar -q lib-static.a api.o 

第三步:加入其它库
echo OPEN lib-static.a > ar.mac 回车
echo ADDLIB other-static.a >> ar.mac 回车
echo SAVE >> ar.mac 回车
echo END >> ar.mac 回车
ar -M < ar.mac 回车

如果是在makefile里面用,直接可以如下调用
define BUILD_LIBRARY 
 $(if $(wildcard $@),@$(RM) $@) 
 $(if $(wildcard ar.mac),@$(RM) ar.mac) 
 $(if $(filter %.a, $^), 
 @echo CREATE $@ > ar.mac 
 @echo SAVE >> ar.mac 
 @echo END >> ar.mac 
 @$(AR) -M < ar.mac 
 ) 
 $(if $(filter %.o,$^),@$(AR) -q $@ $(filter %.o, $^)) 
 $(if $(filter %.a, $^), 
 @echo OPEN $@ > ar.mac 
 $(foreach LIB, $(filter %.a, $^), 
 @echo ADDLIB $(LIB) >> ar.mac 
 ) 
 @echo SAVE >> ar.mac 
 @echo END >> ar.mac 
 @$(AR) -M < ar.mac 
 @$(RM) ar.mac 
 ) 
 endef 

 $(TargetDir)/$(TargetFileName):$(OBJS) 
    $(BUILD_LIBRARY) 

分享到:
评论

相关推荐

    ffmpeg静态库合并

    ios平台实现ffmpeg编译,整合armv7和armv7s版静态库

    libidn 静态库支持ios 64位

    支持x86_64 i386 armv7 armv7s arm64 文件中包含多个cpu架构的静态库,我已经合并到libidn.a 中,使用这一个就可以了

    linux下jpg图片合并

    此软件主要将多张jpg图像进行拼接(暂时支持横向...所有需要用到的库都以静态库方式存在于lib路径下。本程序意在创建一个cximage类在linux下使用的环境。 项目路径中含有测试文件1.jpg 2.jpg。程序运行后会生成3.jpg

    PHPZipMerge:即时合并和流式传输多个Zip文件

    邮编合并将多个现有Zip文件的内容合并并流式传输为单个文件,而无需重新压缩其中的数据。 如果您经常使用需要收集并发送给客户端的静态内容,这将很有用。 这样,您可以预压缩这些程序包,并即时对其进行组装,无需...

    deckard-analysis-kit:方便地在具有多个设置的多个代码库上成对运行Deckard,并汇总结果

    甲板分析试剂盒前提是一个静态代码克隆检测系统(2008年论文),可在代码库中找到语义上相似的代码段“克隆”。 该工具包提供了一组方便的脚本,用于将两个基本代码合并成一个不同的代码库,然后过滤掉同源副本,...

    ios8真机下编译ffmpeg库

    分别编译的静态库可以lipo create armv7 lib libswscale a armv7s lib libswscale a arm64 lib libswscale a output libswscale a 其他 a文件同样合并 还有 sh文件中得DEST是存放三个平台下编译的库文件 ffmpeg库...

    ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64

    ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64 文件中包含多个cpu架构的静态库,我已经合并到libzbar.a中,使用这一个就可以了。

    265和aac封装成MP4

    参考MP4box,封装的一个库,支持多线程,视频暂时支持265,音频是aac格式,封装成MP4的一个api静态库,有需要源码可以加我,linux下字节编译即可

    jdk-10.0.1_linux-x64bit rpm格式CSDN下载

    将 JDK 的多个存储库合并成一个,简化开发。目前的代码库被分解成了多个库,容易出现源代码的管理问题。 应用程序数据共享,通过跨进程共享通用类的元数据,减少空间占用及启动时长。 线程本地握手,不执行全局 VM...

    jdk-10.0.1_windows-x64bit CSDN下载

    将 JDK 的多个存储库合并成一个,简化开发。目前的代码库被分解成了多个库,容易出现源代码的管理问题。 应用程序数据共享,通过跨进程共享通用类的元数据,减少空间占用及启动时长。 线程本地握手,不执行全局 VM...

    jdk-10.0.1_linux-x64bit gz格式CSDN下载

    将 JDK 的多个存储库合并成一个,简化开发。目前的代码库被分解成了多个库,容易出现源代码的管理问题。 应用程序数据共享,通过跨进程共享通用类的元数据,减少空间占用及启动时长。 线程本地握手,不执行全局 VM...

    moveit_humanoid_stability:用于采样和验证具有一个或多个固定脚的人形 Biped 的库,用于 MoveIt 中的稳定性约束!

    用于采样和验证具有一个或多个固定脚的人形 Biped 的库,用于 MoveIt 中的稳定性约束! 包括: 快速稳定性启发式检查 质心、静态稳定性和支持多边形计算。 使用随机数生成智能采样全身位置 为提供一个包装器,允许...

    去配置

    应用程序中的大多数配置都是静态配置的,或者包含复杂的逻辑以从多个源加载。 Go Config使此操作变得容易,可插入和可合并。 您再也不必用相同的方式处理config了。特征动态加载-根据需要从多个源加载配置。 Go ...

    python cookbook(第3版)

    1.20 合并多个字典或映射 第二章:字符串和文本 2.1 使用多个界定符分割字符串 2.2 字符串开头或结尾匹配 2.3 用Shell通配符匹配字符串 2.4 字符串匹配和搜索 2.5 字符串搜索和替换 2.6 字符串忽略大小写的...

    瑞欣网站管理系统源码 v1.5 PHP版.gz

    网页上的链接改为加入网站地址的绝对链接,解决多个网址的SEO问题9.下载时如果没登陆,会自动转向登陆界面10.系统初装不再设置解锁码,您可以在网站设置里修改解锁码11.注册用户,找回密码时连接邮件服务器失败时...

    marketplace-german

    该项目由多个应用程序和子组件组成,这些应用程序和子组件使用作为单独的程序包组织在此存储库中。 用于入站营销平台的静态市场活动登陆页面。 基于WS2框架的本地包共享的Vue.js UI组件库。 适用于AppMarket店面的...

    marketplace-group

    工作空间该项目由多个应用程序和子组件组成,这些应用程序和子组件使用作为单独的程序包组织在此存储库中。用于入站营销平台的静态市场活动登陆页面。基于WS2框架的本地包共享的Vue.js UI组件库。适用于AppMarket...

    marketplace-uk

    工作空间该项目由多个应用程序和子组件组成,这些应用程序和子组件使用作为单独的程序包组织在此存储库中。用于入站营销平台的静态市场活动登陆页面。基于WS2框架的本地包共享的Vue.js UI组件库。适用于AppMarket...

Global site tag (gtag.js) - Google Analytics