IOS开发笔记

Xcode构建自定义静态库(libname.ac++

小知识:Linux静态库*.a,动态库*.so,window静态库*.lib,动态库*.dlljson

1.  建立工程选择iOS->Framework&Library->CocoaTouchStaticLibrary。xcode

2.  删除新建工程时自动建立的.h .m文件,导入自定义头文件及源文件。ui

3.  选择菜单Product->Scheme->Edit Scheme->Run->Build Configuration设置成release(切记此步骤,否则构建的是debug版的.a文件,其它工做引入该静态库时会报Undefined symbols for architecture i386错误)。debug

4.  选择不一样设备类型分别构建真机(iOS Device)及模拟器(iPhone 6/iPad2/iPhone4s等)静态库文件(执行build后可在Products下面看到libname.a文件,黑色表示生成成功,红色未生成)。code

 

Xcode项目导入第三方开发库ip

1.  选择项目中的工程文件,设置工程属性General->Linked Frameworks and Libraries-> + ->Add Other… ->选择第三方静态库文件(.a)。开发

2.  设置头文件搜索路径,设置工程属性 Build Settings->Search Paths->Head Search Paths-> + ->设置第三方库头文件目录。it

 

使用lipo指令io

1.  查看静态库模块的体系结构(终端->cd到.a文件所在目录 -> lipo -info 静态库.a);

2.  合并模拟器及真机通用静态库(终端-> lipo -create 模拟器静态库所在路径/静态库.a 真机静态库所在路径/静态库.a -output 通用静态库输出路径/静态库.a);

 

注意事项:

1.当静态库模块使用到C++11等一些特殊的语音特性时或该模块有引用其它外部库且外部库用到C++11等特性时,构建静态库及使用该静态库的模块都得统一设置C++编译选项,如json库就有用到C++11特性(工程属性->Build Settings->Apple LLVM 6.1 - Language - c++ -> C++ Language Dialect 及C++ Standard Library);

2.在目标工程若添加同一静态库几回,记得清除未使用到的静态库的链接路径(工程属性->Build Settings -> Search Paths ->Library Search Paths ),xcode搜索静态库.a文件的方法是从上往下查找库路径列表;

相关文章
相关标签/搜索