同一工程下的分层项目:使用静态库来创建,通过 .a 文件来连接工程之间的联系

File-->New-->Project  选择 CoCoa Touch Static Library (静态库)

填写名称 LibraryDemo

创建完成的目录

在 LibraryDemo.h 里面写入可以测试的代码

#import <Foundation/Foundation.h>
@interface LibraryDemo : NSObject
-(void)printHelloWorld;
@end

LibraryDemo.m 代码

#import "LibraryDemo.h"
@implementation LibraryDemo
-(void)printHelloWorld{NSLog(@"HelloWorld");
}
@end

以上是 LibraryDemo 工程的代码

现在要准备做些设置,此时的静态库还没有准备

选择工程 LibraryDemo 1 --> TARGETS --> 2 LIbraryDemo -->3 Build Phases

接下来,点击4 "+" 号 选择 New Headers Phase

选择 Hearders 点击" + "

选择我们需要对外的头文件(LibraryDemo.h)

添加进来,后再把 LibraryDemo.h 文件拖到 Public

然后,我们编译下 LibraryDemo 工程.

编译成功 , Succeeded

我们创建一个 MyAppDemo 工程

New --> Project --> Application --> 选择 SingleViewApplication 模板

MyAppDemo--> TARGETS --> 选择 MyAppDemo --> Build Phass 选择 Link Binary With Libraries

添加,我们刚才 LibraryDemo 工程的.a 文件

工程下面就会出现 libLibraryDemo.a 文件

选择 ViewController.m 我们来测试下代码

这里出现了,头文件无法提示,说明我们头文件并没有在 MyAppDemo 工程下

接下来我们设置MyAppDemo

选择 TARGETS -->MyAppDemo

在 BuildSettings 搜索 User Header Search Paths

在里面添加 $(BUILT_PRODUCTS_DIR) 并设置 recursive

完成后

现在代码可以检索到了

这是我们 LibraryDemo 工程下的文件,并且运行可以打印出 HelloWorld

静态库创建完成.

那么接下来,我们来看看,静态库之间如何关联并在工程上使用

我们按照 LibraryDemo 的步骤创建一个 LibraryDemo2

创建完成的工程目录结构

设置LibraryDemo2 工程 已在上面步骤讲述过,这里不在陈述

设置 BuildSettings 添加 搜索头文件$(BUILT_PRODUCTS_DIR)

接下来,修改 LibraryDemo2.h 代码

然后我们在 LibraryDemo2.m 重写 LibraryDemo.h 的 printHelloWorld

好了,我们再编译下.

并把libLibraryDemo2.a 文件添加如图

注意:如果 LibraryDemo2 文件找不到,请确认,你是否编译过 LibraryDemo2 或 是否编译出错.

现在我们修改下 ViewController.m 代码,检测下是否运行正常

现在的项目分层是:

MyAppDemo

LibraryDemo2

LibraryDemo

MyAppDemo 做表现层可以分成两层 iPhone / iPad

LibraryDemo2 可以做业务层

LibraryDemo 是最底层.可以做数据访问层

转载于:https://www.cnblogs.com/Overbord/p/4463224.html

Xcode6 创建静态库相关推荐

  1. Xcode7中创建静态库

    一.静态库和动态库的区别: 静态库和动态库是相对编译期和运行期的,静态库以 .a 和 .framework 形式存在,链接时,静态库会被完整地复制到可执行文件中,被多次使用就有多份冗余拷贝:动态库以 ...

  2. gcc创建静态库和共享库

    静态库和动态(共享)库 静态库:编译程序在编译使用库提供的功能代码的程序时将代码复制到该程序然后编译成可执行程序,这种库成为静态库 共享库:共享库比静态库的处理方式更加灵活,因而其产生的可执行文件更小 ...

  3. 在Linux中创建静态库和动态库 (转)

    我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为静态库和动态库两种.静态 库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库.动态库在程序编译时并不会被连接到目标代码中,而 ...

  4. 在Linux中创建静态库.a和动态库.so

    转自:http://www.cnblogs.com/laojie4321/archive/2012/03/28/2421056.html 在Linux中创建静态库.a和动态库.so 我们通常把一些公用 ...

  5. ar - 创建静态库.a文件

    用途说明 创建静态库.a文件.用C/C++开发程序时经常用到,但我很少单独在命令行中使用ar命令,一般写在makefile中,有时也会在shell脚 本中用到.关于Linux下的库文件.静态库.动态库 ...

  6. IOS创建静态库Cocoa Touch Static Library

    转自:http://blog.csdn.net/ahopedog/article/details/7873385 为了系统的安全,ios只允许使用静态库(静态连编到程序中),不能用动态库(程序运行时才 ...

  7. xcode6制作静态库详解

    开发IOS程序时我们使用的是Objective-c语言,Objective-c语言有.h .m 文件组成.静态库可以将 .m文件封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h ...

  8. linux qt创建静态库,QT创建与QT无关的纯C++程序和动态/静态库

    QtCreator是一个很好的编写C++程序的工具,我们可以利用其高效的开发IDE来开发纯C++应用程序或动态库,静态库. 一.创建纯C++应用程序 1.新建项目,选择Non-Qt Project,可 ...

  9. Windows下创建静态库

    开发工具vs2010 1.新建win32控制台应用程序 点击项目属性,选择配置属性为Release,配置类型为静态库 2.Build工程后,在Release模式下找到lib文件

最新文章

  1. 机器学习揭示了人类大脑的新见解
  2. 单元测试之道一:NUnit基础
  3. Linux运维:CentOS7下查看内存占用
  4. VTK:可视化算法之AnatomicalOrientation
  5. android 全局 socket,学习Android socket通信之如何解决中文乱码
  6. 第二次Soring冲刺计划第一天(团队)
  7. Linux查询端口是否被占用的四种方法
  8. 硬件开源为什么如此之难?
  9. [Swust OJ 632]--集合运算(set容器)
  10. 字典树实现_trie 字典树的实现方法
  11. Zoom会议使用指南
  12. MindManager22直装版思维导图新功能
  13. 第11课:词句分布式表达——词建模工具
  14. 高等数学:极值点一定连续吗?间断点可以是极值点吗?
  15. 多看系统kindle最新版_谁说电气造价难?这样系统梳理一下简单多了!小白必看...
  16. Spring框架——applicationContext.xml配置文件头部xmlns
  17. Oracle空闲超时时间设置
  18. Nachos之系统调用
  19. c语言-基础知识点复习
  20. [强文]有几个还活着?十年应用软件之路

热门文章

  1. Objective-C选择器 Selector
  2. 正则表达式系统教程.CHM
  3. [转]ASP.NET面试题
  4. excel制作跨职能流程图_用Excel规划求解工具,实现组合投资优化
  5. r roc函数_如何处理R(pROC包)中的多类ROC分析?
  6. float类型转integer_【第3章:Java基础程序设计】_Java数据类型
  7. 萌新的Python练习菜鸟100例(十七)输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
  8. The Learning route of GNN
  9. java系列3:数组初始化(基本格式)
  10. Conflux获上海市政府超过500万美元的研究资助