Xcode添加静态库以及编译选项配置常见问题
来源:互联网 发布:莱昂纳德体测数据虎扑 编辑:程序博客网 时间:2024/05/20 16:34
Xcode添加静态库以及编译选项配置常见问题
一,Xcode编译出现Link错误,出现"duplicate symbols for architecture i386 clang"提示.
问题:链接时,项目有重名文件.
解决:
根据错误提示,做如下检查:
1.Taraget->Build Settings->Link Binary With Libraries检查是否有重复lib.
2.全工程搜索下重名文件,决定如何删除.
二,关于Category位于静态库时,引用该静态库的工程使用Category,出现"unrecognized selector sent to class"提示.
问题:标准UNIX静态库与Objective-C之间Linker的差异.在标准的UNIX静态库内,linker symbol是依照每一个类别而产生的,但由于Category并没有真正产生一个类别,所以出错.
解决:
1.在该静态库的Taraget->Build Settings->Other Linker Flags->加上 -ObjC.
2.在使用该静态库的工程Taraget->Build Settings->Other Linker Flags->加上-all_load或-force_load.
三,编译warning:ld: warning: directory not found for option '-L'.
问题:通常是Path问题.
解决:
Taraget->Build Settings->Library Search Paths 和 Framework Search Paths,删掉编译报warning的路径即OK
四,引入(带源码的)静态库所需配置.
步骤:
1.Add Files to.. 加入静态库的.xcodeproj 文件,不要勾选Copy Items.. 选项。(可以先把源代码项目先复制到使用项目文件夹下)
2.Target->Build Phases->Target Dependecies->加静态库 && Link Binary With Libraries->加静态库.
3.配置静态库头文件路径,在Taraget->Build Settings->User Header Search Paths->配上静态库的物理路径.
[错误tips: 若出现加入的.xcodeproj无法展开,则在Xcode中关闭静态库项目即可]
PS:只有.a 和 .h的静态库,则直接拖入项目即可。
五,关于重构,解决跨层调用问题,
常用选择:
1.传参(包括静态变量的使用)
2.传回调
3.直接移动调用的代码(若代码出现在不适合的地方,移动类/方法/etc)
- Xcode添加静态库以及编译选项配置常见问题
- Xcode添加静态库以及编译选项配置常见问题
- Xcode添加静态库以及编译选项配置常见问题
- Xcode添加静态库以及编译选项配置常见问题
- Xcode添加静态库以及编译选项配置常见问题
- Xcode添加静态库以及编译选项配置常见问题
- Xcode添加静态库以及编译选项配置常见问题
- Xcode添加静态库以及编译选项配置常见问题
- Xcode添加静态库以及编译选项配置常见问题
- 工作备忘-Xcode添加静态库以及编译选项配置常见问题
- xcode引入静态库常见问题
- xcode添加用户自定义编译选项
- xcode 编译静态库
- Xcode 5.1 编译模拟器以及真机都能使用的静态库
- Xcode 5.1 编译模拟器以及真机都能使用的静态库
- Xcode Analyze进行代码静态检查以及一些常见问题释疑
- Unity调用Xcode编译的静态库的基本流程、常见问题及解决方案
- VS2008静态编译配置选项的位置
- js 弹窗 (加入一个黑色层,效果
- C++11保证稳定性和兼容性(一):保持与C99兼容
- OpenWrt-SDK-编译生成ipk软件包
- 使用HP Unified Functional Testing--检查点功能的实现
- 字节流字符流的使用
- Xcode添加静态库以及编译选项配置常见问题
- java.security.AccessControlException: access denied
- Python程序的执行原理(-)
- php多进程单例模式下的 MySQL及Redis连接错误修复
- jQuery.ajax( options )
- Oracle User和Schema的区别
- 整数中1出现的次数(从1到n整数中1出现的次数)
- Gradle——故障排除
- Effective modern C++ 条款 40:注意不同线程句柄的析构函数的行为