以下这些操作是在 XCode4.0 上的情况 3.2 以前的版本没有试过 。
在IPhone / Ipad 开发中 静态库用出很大 。 ObjectC 支持 与 C++ 混编。 C 语言可以直接在.m 文件里便于。 如果程序里要用的C++的话 要使用.mm 文件。 在调用动态库时 如果动态库中有C++的内容, 那么调用文件要改成.mm 。 本人在着方面困惑好久。
动态库编写过程
1 创建一个工作空间。File ->New ->New WorkStation . 命名为“StaticLibraryStation”.
2 在创建的StaticLibraryStation 中 创建静态库 File ->New -> New Project . 在 iOS 下 选择 Framework & Library 选择 右侧的 “Cocoa Touch Static Library ” 点击 “next” 命名为 “FirstStaticLibrary”
3 给工程FirstStaticLibrary 创建 C++ 类 FirstC++Class 其中头文件为 FirstC++Class.h 类执行体为:FirstC++Class.mm
FirstC++Class.h
FirstC++Class.mm
创建ObjectC类 FirstObjectCClass 其中头文件 FirstObjectCClass.h 执行体为 FirstObjectCClass.mm
FirstObjectCClass.h
FirstObjectCClass.mm
然后在iPhone4.3 simulator 模拟器下编译执行 。
产生 libFirstStaticLibrary.a 此文件 可以在 工程 Projects 目录下 右击 libFirstStaticLibrary.a 选择“Show in Finder” 找到
4 动态库编译成功后, 添加我们 的动态库测试程序。 在我们的工作空间里 File-> New -> New Project 选择 ios ->Application 右侧的
Window-based Application 单击next 命名为FirstStaticLibraryTest
记住 把 FirstStaticLibraryTestAppDelegate.m 改成 FirstStaticLibraryTestAppDelegate.mm ; 因为我们的动态库里包含了 C++代码
ObjectC 中 只有mm 源文件才能支持C++ ObjectC 的混编 。
把FirstObjectCClass.h 头文件 添加到你的FirstStaticLibraryTest工程项目中 同时libFirstStaticLibrary.a 也添加到你的项目框架中 。
在我们的的FirstStaticLibraryTestAppDelegate.mm 中 导入 头文件 #import "FirstObjectCClass.h"
然后 在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中 添加 如下代码
然后在iPhone4.3 simulator 模拟器下编译执行
5 打断点 查看运行结果
如下
ios下静态库编写 在Xcode4 大概就这样 哈哈 2011-06-30