XCode引用及创建静态库
2016-05-25 09:03
232 查看
1.创建静态库
打开XCode新建一个项目,选择Library下的“Cocoa Touch Static Library”,在Classes文件夹上点右键选择“New File…”,然后在“Cocoa Touch Class”下选择“Objective-C class”,这样就可以创建Objective-C风格的源文件和头文件。
同样,也可以创建C或者C++风格的代码,在Classes文件夹上点右键,选择“New File…”,这次选择Mac OS X下的“C and C++”,就行。
然后在文件里编写具体的调用代码。
最后进行编译,就会产生一个以.a为结尾的文件,就是我们需要的静态库。同时我们也需要生成的.h头文件。
2.使用静态库
在需要调用静态库的工程的目录下通过右键点Frameworks->Add->Existing Files..添加之前创建的.a静态库文件,然后在需要调用静态库的函数的.h文件里,import进来和静态库中.m对应的.h头文件,并且声明静态库里的类:@class 类名,这样就可以使用静态库里的函数了。
3.联调静态库
如果单单以copy的方式包含进.a静态库,这样只能使用静态库,如果需要修改静态库里的函数,则需重新生成静态库,并将其重新包含进来,在开发阶段会显得比较麻烦。可以采用Xcode的Cross-Project Reference(跨项目参考)的方式解决。
首先把静态库的XCode项目整个包含进我们的当前项目(注意:不要选择Copy items to destination group's folder选项)。
接着和第二步一样也是包含进.a静态库(也要注意:不要选择Copy items to destination group's folder选项)。
这样就可以从我们当前的项目里直接打开静态库的项目,直接修改(注意:修改后编译前必须选择clean,清除原有的静态库,重新生成)。
补充说明:
1、在编译静态库时,需要确定选择的编译环境是模拟器还是设备;
2、用命令lipo -info libPrint.a 可以查看该静态库所适用的处理器架构,如结果是:Arch是 Arm7(表示设备),若为i386则为模拟器;
3、可以合并模拟器和设备的.a文件,制作通用静态库:
利用lipo将这二个文件打包成一个通用的a文件。命令如下:
lipo -create libPrint_simu.a libPrint_device.a -output ~/Desktop/libPrint.a
打开XCode新建一个项目,选择Library下的“Cocoa Touch Static Library”,在Classes文件夹上点右键选择“New File…”,然后在“Cocoa Touch Class”下选择“Objective-C class”,这样就可以创建Objective-C风格的源文件和头文件。
同样,也可以创建C或者C++风格的代码,在Classes文件夹上点右键,选择“New File…”,这次选择Mac OS X下的“C and C++”,就行。
然后在文件里编写具体的调用代码。
最后进行编译,就会产生一个以.a为结尾的文件,就是我们需要的静态库。同时我们也需要生成的.h头文件。
2.使用静态库
在需要调用静态库的工程的目录下通过右键点Frameworks->Add->Existing Files..添加之前创建的.a静态库文件,然后在需要调用静态库的函数的.h文件里,import进来和静态库中.m对应的.h头文件,并且声明静态库里的类:@class 类名,这样就可以使用静态库里的函数了。
3.联调静态库
如果单单以copy的方式包含进.a静态库,这样只能使用静态库,如果需要修改静态库里的函数,则需重新生成静态库,并将其重新包含进来,在开发阶段会显得比较麻烦。可以采用Xcode的Cross-Project Reference(跨项目参考)的方式解决。
首先把静态库的XCode项目整个包含进我们的当前项目(注意:不要选择Copy items to destination group's folder选项)。
接着和第二步一样也是包含进.a静态库(也要注意:不要选择Copy items to destination group's folder选项)。
这样就可以从我们当前的项目里直接打开静态库的项目,直接修改(注意:修改后编译前必须选择clean,清除原有的静态库,重新生成)。
补充说明:
1、在编译静态库时,需要确定选择的编译环境是模拟器还是设备;
2、用命令lipo -info libPrint.a 可以查看该静态库所适用的处理器架构,如结果是:Arch是 Arm7(表示设备),若为i386则为模拟器;
3、可以合并模拟器和设备的.a文件,制作通用静态库:
利用lipo将这二个文件打包成一个通用的a文件。命令如下:
lipo -create libPrint_simu.a libPrint_device.a -output ~/Desktop/libPrint.a
相关文章推荐
- java入门教程-5.4Java接口(interface)的概念及使用
- Leetcode 171. Excel Sheet Column Number
- 关于jQuery和AJAX的详解(二)
- 【代码笔记】iOS-使图片两边不拉伸,中间拉伸
- [转]centos6 与 7 其中的一些区别
- 【代码笔记】iOS-使图片两边不拉伸,中间拉伸
- Linux内核之数据双链表
- 深入浅出Docker(二):Docker命令行探秘
- android接口定义语言(AIDL)的使用示例
- CSS实现多行文字两端对齐的效果
- java入门教程-5.3Java抽象类的概念和使用
- oracle函数trunc的使用
- Git忽略规则及.gitignore规则不生效的解决办法
- http://honda418.iteye.com/blog/337052/
- javaScript框架开发
- RelativeLayout相对布局
- java入门教程-5.2Java静态内部类、匿名内部类、成员式内部类和局部内部类
- 缓存图片并显示在adapter
- [pYUV]如何打开YUV/RGB图片
- Java入门教程-5.1Java内部类及其实例化