• 之前合成了静态库.a, 有时候我们会拿到别人提供的...准备一个静态库.a文件,比如我们之前制作的 libVideoPlayerLib.a,放在桌面的test目录里。 第二步: 打开终端:cd 到 libVideoPlayerLib.a 所在的文件夹tes...
    > 之前合成了静态库.a, 有时候我们会拿到别人提供的静态库,但是编译报错,这时候最先要考虑的一步就是这个静态库是否支持我们编译的架构。怎么查看支持的架构?废话不多说!下面亲自实验一下
    
    ### 第一步:
    
    准备一个静态库.a文件,比如我们之前制作的 **libVideoPlayerLib.a**,放在桌面的test目录里。
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190505201846976.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NoaWZhbmcwNw==,size_16,color_FFFFFF,t_70)
    ### 第二步:
    1. 打开终端:cd 到 **libVideoPlayerLib.a** 所在的文件夹test下 .
    2. 查看 **libVideoPlayerLib.a** 包含几种架构 arch 。 (file 命令)
    3. 分离出一种架构的.a。(lipo **.a  -thin  armv7  -output armv7.a)
    4. 抽离.a文件的object文件.o。(ar -x armv7.a)
    5. 将.o 转换为 .m。(nm ****.o > ****.m)
    
    ```
    Last login: Sun May  5 19:30:20 on ttys004
    lzz-Mac-mini:~ suning$ cd /Users/suning/Desktop/test 
    lzz-Mac-mini:test suning$ file /Users/suning/Desktop/test/libVideoPlayerLib.a 
    /Users/suning/Desktop/test/libVideoPlayerLib.a: Mach-O universal binary with 4 architectures: [arm_v7:current ar archive random library] [arm64:current ar archive random library]
    /Users/suning/Desktop/test/libVideoPlayerLib.a (for architecture armv7):	current ar archive random library
    /Users/suning/Desktop/test/libVideoPlayerLib.a (for architecture i386):	current ar archive random library
    /Users/suning/Desktop/test/libVideoPlayerLib.a (for architecture x86_64):	current ar archive random library
    /Users/suning/Desktop/test/libVideoPlayerLib.a (for architecture arm64):	current ar archive random library
    lzz-Mac-mini:test suning$ lipo libVideoPlayerLib.a -thin armv7 -output armv7.a
    lzz-Mac-mini:test suning$ ar -x armv7.a
    lzz-Mac-mini:test suning$ nm VideoPlayerLib.o > VideoPlayerLib.m
    ```
    
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190505202751732.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NoaWZhbmcwNw==,size_16,color_FFFFFF,t_70)6. 打开导出到.m 伪代码
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190505202825396.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NoaWZhbmcwNw==,size_16,color_FFFFFF,t_70)通过伪代码可以了解.m 的实现过程
    
    展开全文
  • ios 生成.a文件 2018-10-12 17:27:04
    现在再有一个功能,不知道是集成方是想用.a 还是framework 就将两种都给实现了 ,这篇介绍.a文件的生产, framework生产 生产.a库 1.首先创建一个新的工程,选择ios --》Framework&Library --》 Cocoa Touch...
  • ios编译静态库.a文件 2017-02-23 10:31:46
    1. 如果工程中引用其他第三方库文件,多于一个时,可以先将这些库文件(.a)合并成一个再进行下一步 1) 合并静态库:lipo -create xxx1.a xxx2.a -output xxx_new.a 查看静态库包含的包:lipo -info xxx1.a  如果...
  • iOS中的.a文件 2017-06-01 16:54:08
    静态库可以将 .m文件封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h文件即可使用静态库中封装的方法。IOS静态库适合去制作第三方提供的SDK。 .a文件iOS静态库 首先看静态库和动态...
  • iOS 打包静态库.a文件 2015-10-28 09:14:21
    3、将需要暴露的.h文件暴露出来,.m会自动编译到.a文件中 4、分别选择真机设备和模拟器,command + B编译,staticTest会从红色变成黑色。真机和模拟器环境下用的.a文件是分开的。 5、在“Show in Finder ”,可以...
  • 编译iOS使用的.a文件 2019-01-06 02:35:15
    首先是须要编译成.a的源文件   hello.h: #ifndef __INCLUDE_HELLO_H__ #define __INCLUDE_HELLO_H__ void hello(const char *name); #endif // end __INCLUDE_HELLO_H__ hello.c #include "...
  • iOS如何生成.a文件 2016-11-16 09:26:00
    iOS如何生成.a文件 字数818 阅读7913 评论18 喜欢28 首先来谈谈为何要使用.a文件 Objective-c语言有.h .m 文件组成。静态库可以将 .m文件封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码...
  • lipo -create SQY/iOS/iphoneos/libGamePlusAPI.a SQY/iOS/iphonesimulator/libGamePlusAPI.a -output SQY/iOS/libGamePus.a 其中SQY/iOS/iphoneos/libGamePlusAPI.a //为真机库。  SQY/iOS/iphone...
  • iOS - 编译WebRTC.a静态库 2019-08-12 22:06:00
    编译WebRTC.a静态库 编译的方式,我看了几个帖子,什么方法都有,这里我根据我的需求,...ios版本的webrtc是有自己的编译脚本文件的,我们在这里面做些修改就可以,脚本文件的路径是:webrtc_build/webrtc/src/too...
  • Mach-O文件 官方介绍总共有11种格式! 是 Mach Object的缩写,是Mac\....a 静态库文件.其实就是N个.o文件的集合 3.DYLIB: 动态库文件 dylib framework 4.动态连接器 5.DSYM (打包上架用于监测崩溃信息) .o文...
  • 一、准备工作 1.下载最新的 gas-preprocessor.pl ...修改文件权限:chmod 777 /usr/bin/gas-preprocessor.pl 下载最新的 gas-preprocessor.pl 下载地址:http://git.libav.org/ 复制gas-preproc
  • 前言: 有时侯需要使用c++的一些代码库,这里先讲一下Xcode 建C++ 工程,并将代码编译成.a库,提供给demo使用。这里只是简单的介绍,以后会继续介绍如何将公开的C/C++源码编译成OC使用的静态库.a。 第一步 准备 a....
  • Ios Xcode工程添加.a文件引起错误的几种修改方法(一般是微信的.a静态库出错) 一、 TARGETS -> Build Settings-> Search Paths下 1. Library Search Paths 删除不存在的路径,保留.a文件的路径(此处显示的为...
  • iOS .a文件的打包过程 2020-03-20 15:05:55
    2、文件参数配置 "Build Active Architecture Only"设置NO。 Yes No的区别: Yes,是只编译当前Architecture版本,是为了编译速度加快。一般我们是在Debug下设置的。 No,系统会编译所有的Architecture版本。 ...
  • 有的.a文件支持的架构比较多,x86,arm64,arm7s,arm7这样我们编译的时候不会出错.但是如果支持的架构越多.我们最终生成的ipa包将会越大.比如x86的架构,我们上线版本根本用不到,或者第三方根本没有给我们提供支持x86的....
  •  在应用中,有些公共的代码需要反复使用 的代码,希望隐藏代码的具体实现,可以把这部分代码做出静态库(.a文件);如果提供库的源代码称为开源库(能看见.h也能看见.m文件),不提供源代码的库称为闭源库(静态库...
  • 本人已经编译生成好的.a静态库和头文件 : https://download.csdn.net/download/zhangkai19890929/10889946 项目下载地址: https://gist.github.com/eminarcissus/108c2ac0c7c9124b65709b44edabd424 但是要改动一些...
  • 编译静态库.a 1 新建工程->Framework&Library->选择Coco Touch Static ->next->给项目命名建成项目 2在项目的Products 文件下有个libxxxx.a文件,此时.a文件为红色,项目中...3 编译工程,编译完工程后.a文件名称
  • 新建一个iOS的空项目:这个非常的简单就不说了,然后建立一个要使用的库文件:
1 2 3 4 5 ... 20
收藏数 55,019
精华内容 22,007