本文转载至 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添加静态库以及编译选项配置常见问题相关推荐

  1. xcode 编译静态库所要注意

    一 建立静态库 1. 生成静态库工程 2. release/debug 的选择  scheme 3. 编译(注意真机与模拟器的产物)==>  lipo -create [源文件路径1]  [源文 ...

  2. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  3. Vs2013添加静态库

    Vs2013添加静态库 如果想要使用静态库,需要头文件.和一个lib文件. 头文件添加: 项目->右键添加现有项,加入解决方案中,将头文件包含即可 文件.lib添加有两种方式: (1) 将静态库 ...

  4. CMake教程(二)- 添加静态库文件和动态库文件

    CMake教程(二)- 添加静态库文件和动态库文件 什么是库文件 静态链接库 动态链接库 静态库和动态库的区别 如何在CMake中添加库文件 CMake 中 target_link_libraries ...

  5. xcode 制作静态库.a文件 详解

    http://blog.csdn.net/kepoon/article/details/21516977 最近在做Apple的IOS开发,有开发静态库的需求,本身IOS的开发,只允许静态库或者Fram ...

  6. 如何在VS2012 C++项目里面添加静态库文件lib

    先说说普通的两种方法: 方法1:  通过设置工程配置来添加lib库. 转自网上: A.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录 ...

  7. 若依框架添加静态页面,路由配置

    若依框架是一套开源框架,先建数据表结构,然后可以快速生成增删查改的一套代码.但是涉及到统计分析,花里胡哨的自定义页面,如何添加呢?自己总是忘记,所以现在记录一下. 1.项目部署好,启动起来,在浏览器里 ...

  8. XCode打包静态库文件

    这里以打包rfc3951静态库为例 创建一个静态库工程 命名为librfc3951 将文件夹librfc3951下生成的librfc3951.h. librfc3951.m文件删除,加入 rfc395 ...

  9. Xcode添加字体库

    添加自定义字体的方法 1)   先需要一个.ttf的自体库,可以百度搜索字体库下载 2)把这个文件添加到工程里面 3)工程plist中添加Fonts provided by application一项 ...

最新文章

  1. Nature子刊评论:2020年后,微生物组将如何发展?
  2. 分布式计算的模式语言读后感--基线架构
  3. cos html cache插件,关于Cos-Html-Cache插件不能创建首页缓存的解决办法
  4. 2021年福安民族中学高考成绩查询,福安民族中学2019年录取分数线
  5. OpenCV使用MSER检测末端区域的实例(附完整代码)
  6. caffe学习笔记25-过拟合原因及分析
  7. 将 WinForms 应用从 .NET Core 3.0 升级到 3.1
  8. 找了个学习uboot makefile的好地方 不过不让转载 那就把网址分享一下吧
  9. 内心的秘密写在脸上,科学家用面部识别预测性取向和犯罪倾向
  10. 设计导航网站|图片各种素材管够,资源丰富设计师懂得
  11. python账户密码_python02 用户名密码
  12. jio tomcat_透过Jio Glass看
  13. 基于排队论模型的收银台服务系统的分析及可视化设计
  14. 安装虚拟机报错 This kernel requires an X86-64 CPU,but only detected an i686 CPU
  15. Python Des加密与解密实现软件注册码、机器码
  16. C++车辆管理系统课程设计
  17. 计算机小型机是机箱么,广州励康科技
  18. maya模型导入UE4,如何做到等比导入
  19. 三酷猫学python_python学习第二期
  20. mysql SELECT/UPDATE command denied to user 'root'@'localhost' for table 'XXX' 报错1142处理

热门文章

  1. 有简历,为何还要自我介绍?
  2. 使用Visual Studio 2010 一步一步创建Powershell Module 和 Cmdlet
  3. Android 4.0 Launcher源码分析系列(二)
  4. js对象序列化为json字符串
  5. 使用javamail发信过程中的一些问题及解决方法
  6. tensorflow(centos 7.0 64)安装
  7. 结合前段修改mysql表数据_jquery实现点击文字可编辑并修改保存至数据库
  8. Myesclipe+SSH+jsp+mysql+tomcate实现一个简单的CRM客户关系管理系统
  9. cmake 构建路径_新手必备:win10 系统下 VSCode+CMake+Clang+GCC 环境的搭建
  10. roads 构筑极致用户体验_坚持用户思维 推动领克汽车逆势突围