Xcode添加静态库以及编译选项配置常见问题
本文转载至 http://www.cnblogs.com/Quains/archive/2013/08/22/3276425.html
一,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)
转载于:https://www.cnblogs.com/Camier-myNiuer/p/4058346.html
Xcode添加静态库以及编译选项配置常见问题相关推荐
- xcode 编译静态库所要注意
一 建立静态库 1. 生成静态库工程 2. release/debug 的选择 scheme 3. 编译(注意真机与模拟器的产物)==> lipo -create [源文件路径1] [源文 ...
- 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )
文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...
- Vs2013添加静态库
Vs2013添加静态库 如果想要使用静态库,需要头文件.和一个lib文件. 头文件添加: 项目->右键添加现有项,加入解决方案中,将头文件包含即可 文件.lib添加有两种方式: (1) 将静态库 ...
- CMake教程(二)- 添加静态库文件和动态库文件
CMake教程(二)- 添加静态库文件和动态库文件 什么是库文件 静态链接库 动态链接库 静态库和动态库的区别 如何在CMake中添加库文件 CMake 中 target_link_libraries ...
- xcode 制作静态库.a文件 详解
http://blog.csdn.net/kepoon/article/details/21516977 最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者Fram ...
- 如何在VS2012 C++项目里面添加静态库文件lib
先说说普通的两种方法: 方法1: 通过设置工程配置来添加lib库. 转自网上: A.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录 ...
- 若依框架添加静态页面,路由配置
若依框架是一套开源框架,先建数据表结构,然后可以快速生成增删查改的一套代码.但是涉及到统计分析,花里胡哨的自定义页面,如何添加呢?自己总是忘记,所以现在记录一下. 1.项目部署好,启动起来,在浏览器里 ...
- XCode打包静态库文件
这里以打包rfc3951静态库为例 创建一个静态库工程 命名为librfc3951 将文件夹librfc3951下生成的librfc3951.h. librfc3951.m文件删除,加入 rfc395 ...
- Xcode添加字体库
添加自定义字体的方法 1) 先需要一个.ttf的自体库,可以百度搜索字体库下载 2)把这个文件添加到工程里面 3)工程plist中添加Fonts provided by application一项 ...
最新文章
- Nature子刊评论:2020年后,微生物组将如何发展?
- 分布式计算的模式语言读后感--基线架构
- cos html cache插件,关于Cos-Html-Cache插件不能创建首页缓存的解决办法
- 2021年福安民族中学高考成绩查询,福安民族中学2019年录取分数线
- OpenCV使用MSER检测末端区域的实例(附完整代码)
- caffe学习笔记25-过拟合原因及分析
- 将 WinForms 应用从 .NET Core 3.0 升级到 3.1
- 找了个学习uboot makefile的好地方 不过不让转载 那就把网址分享一下吧
- 内心的秘密写在脸上,科学家用面部识别预测性取向和犯罪倾向
- 设计导航网站|图片各种素材管够,资源丰富设计师懂得
- python账户密码_python02 用户名密码
- jio tomcat_透过Jio Glass看
- 基于排队论模型的收银台服务系统的分析及可视化设计
- 安装虚拟机报错 This kernel requires an X86-64 CPU,but only detected an i686 CPU
- Python Des加密与解密实现软件注册码、机器码
- C++车辆管理系统课程设计
- 计算机小型机是机箱么,广州励康科技
- maya模型导入UE4,如何做到等比导入
- 三酷猫学python_python学习第二期
- mysql SELECT/UPDATE command denied to user 'root'@'localhost' for table 'XXX' 报错1142处理
热门文章
- 有简历,为何还要自我介绍?
- 使用Visual Studio 2010 一步一步创建Powershell Module 和 Cmdlet
- Android 4.0 Launcher源码分析系列(二)
- js对象序列化为json字符串
- 使用javamail发信过程中的一些问题及解决方法
- tensorflow(centos 7.0 64)安装
- 结合前段修改mysql表数据_jquery实现点击文字可编辑并修改保存至数据库
- Myesclipe+SSH+jsp+mysql+tomcate实现一个简单的CRM客户关系管理系统
- cmake 构建路径_新手必备:win10 系统下 VSCode+CMake+Clang+GCC 环境的搭建
- roads 构筑极致用户体验_坚持用户思维 推动领克汽车逆势突围