默认情况下。是有生成,可能你不知道在哪里。

Xcode-->perferences--> locations

Derived Data,下面有一个路径:

/Users/Liam/Library/Developer/Xcode/DerivedData

这个就是默认的生成路径。点击旁边的箭头就可跳转到该文件夹。这里不值程序的目标文件,还有其他的生成的文件。

如果你想在项目中也生成一份,那么就点击Advanced按钮。将Build Location,选择“locations specified by targets”就可以了。

这时你在Build,那么项目路径下就会产生Build目录。

targets ->  build phases -> link binary with Libraries

Build Settings里面设定Library Search Paths为那个静态库的存储路径,不然不会读取。

object-c调用C++编写的静态库时,首先要在build setting中C++ Standard Library 选项中选择libstdc++,其次就是调用C++接口的.m文件要改为.mm(就是 修改文件名后缀为.mm)。
很多情况下,我们从网上得到的是一个纯C的代码包,他们这些库,往往是各种平台通用,代码包svn checkout出来后,里面有makefile , vcproject file,等等。
往往我们先README看过之后,通过./configure  make  make install ,
来实现编译生成了一个库。(注意一些基本语法  ./confiure后如果带 --prefix=/path/to/your/custom/dir  表明自定义安装路径 ,这个很有用,有些人默认安装后,找不到*.a库的路径,急死了。嘿嘿。)

那么在这样的情况下,我们第一个首先会遇到的问题,就是这个库格式不兼容。

我们添加了这个库到project后编译时,显示this file format doesn't support (i386)。
这个情况,是由于大部分snow leopard是INTEL DUO CPU,双核x86_64的,一般很多库,不加特别标注,都以为你开发了为MAC电脑开发程序,所以库都默认为x86_64位的静态库。如果你好奇,可以new一个MAC开发程序的project,试着看看那个库能不能正常编译,没有warning就知道了。

当然,还有一个命令行来检测你编译的库,可以使用在什么平台架构下。
方法如下:   :    lipo -info /path/to/your/library.a
即可看到此库位i386, x86_64, arm等等。

明白了上面的问题的产生原因,我们就好办了。 一般解决办法是这样的,在./configure 之后加一点参数,比如 CFLAG="-arch i386" 。GCC的path设定到SDK path以下的/usr/lib/gcc/i686 or arm下。注意,SDK PATH,有两种,iphoneOs 和iphoneSimulator.有很大的区别!!

好了。以上是第一个问题。随后,你编译成功,lipo检测版本也OK后,你可以*.a 静态库文件到Project了。记得选中复制到项目。

再一个问题,也就是第二大问题,就是如何导入头文件。

由于很多是C的代码,headers通常是这样使用的 #include <fuck.h> 。如果我们这样使用,xcode直接报错,提示找不到这样的头文件。

那我们该怎么办呢?我找了网上所有的文章,都一带而过。于是我很愚蠢的选择把头文件拷贝过来。然后一个个的改include 为import ,把< >语法,改为” “。并且,木有一个高手愿意说!我恨啊!!!

其实可以使用这样的办法,就是在右击你的project 名,选择Get Info . 在build选项卡中,有search hearder path 选项。是让你告诉xcode去哪儿搜搜头文件。

记住,这里如果你的库的安装路径是/usr/AAA的话,那AAA下肯定有include , lib两大文件夹。 那你在选项中,请直接填/usr/AAA,不需要多此一举选择到include文件夹中,苹果会自动替你搜索进去。

这里有一个小细节,如果这样编译出错的话,请不要选中recursive ,否则可能导致头文件重复引用,导致error: expected '=', ',', ';', 'asm' or '__attribute__' before 这样的错误。

至此,xcode的引用第三方库已经基本讲解结束了。一般来说,请不要相信那些片段,说什么让你设定library的path 。请记住,*.a的静态库,直接按照本文附件中的方法,添加文件到Project,不要偷懒直接引用path,会有很多意外的错误。

From:http://blog.csdn.net/renzha0401/article/details/7107069

xcode生成文件路径相关推荐

  1. [vue] 怎么修改vue打包后生成文件路径?

    [vue] 怎么修改vue打包后生成文件路径? webpack:output.path vue-cli3: outputDir 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一 ...

  2. C#在生成文件路径时去除特殊字符

    生成文件路径时去除特殊字符 我们在基于windows 平台开发软件时,当我们不确定生成的文件夹名称是否合法时,我们可以在任意目录下新建一个文件夹,进行重命名,再把我们不确定的特殊字符放进去,看wind ...

  3. tomcat项目在Linux下生成文件路径错误问题

    linux下路径保存错误 linux下保存错误,这是因为在windows上文件分隔符是"\",在linux上文件分割符是"/",所以所以往linux服务上部署时 ...

  4. c#中文件路径出现非法字符怎么办?解决也容易

    c#中如果需要生成文件路径,有时会抛出"文件路径中出现非法字符"的异常,这时我们就会找到这个非法的字符串,然后Replace替换掉.其实net类库提供了非法字符的数组,我们直接循环 ...

  5. Qt工程生成xcode工程文件

    前言 xcode 是 Mac 下重要的开发工具,若是用 Qt 开发 Mac/ios 的 App 时,可以使用 xcode 软件进行调试或者配置一些平台属性等等,毕竟是苹果自己的开发工具,使用肯定会比较 ...

  6. R语言使用fs包的path_wd函数基于自定义文件路径规则,批量生成多个文件或者文件夹对应的绝对(absolute)文件路径(constructs absolute path)

    R语言使用fs包的path_wd函数基于自定义文件路径规则,批量生成多个文件或者文件夹对应的绝对(absolute)文件路径(constructs an absolute path from the ...

  7. java core 生成路径_core文件生成和路径设置

    在程序崩溃时,内核会生成一个core文件,即程序最后崩溃时的内存映像,和程序调试信息. 之后可以通过gdb,打开core文件察看程序崩溃时的堆栈信息,可以找出程序出错的代码所在文件和函数. 1.cor ...

  8. 织梦根目录生成php文件,织梦dedecms内置网站地图生成根目录路径

    织梦dedecms 后台生成下面"更新网站地图"以及"更新RSS文件"默认保存在data目录下, 之前我帮客户搭建的织梦dedecms站点在robots.txt ...

  9. linux生成core文件路径,core文件生成和路径设置

    在程序崩溃时,内核会生成一个core文件,即程序最后崩溃时的内存映像,和程序调试信息. 之后可以通过gdb,打开core文件察看程序崩溃时的堆栈信息,可以找出程序出错的代码所在文件和函数. 1.cor ...

最新文章

  1. 探索JAVA并发 - 线程池详解
  2. voc生成xml 代码
  3. JS版数据结构第三篇(链表)
  4. mysql主从备份失败--记录现象
  5. mysql分组获取其他字段_sqlserver group by后获取其他字段(多种方法)
  6. 马上有钱:揭密25种成为有钱人的方法(图)
  7. java mvel_MVEL实现java直接根据公式计算结果
  8. mysql 哈希缓存_MySQL数据库性能优化思路总结
  9. hadoop和kerberos的整合总结
  10. Java—Remove Deplicates from Sorted Array(顺序数组中去重位置)
  11. ps练习实例_拥有一份史上最全面的50集ps抠图学习教程是什么一种体验?
  12. Harmony OS — DatePicker日期选择器
  13. Vue自定义组件——图片放大器,js点击<img>触发图片放大,富文本内图片点击实现放大器效果
  14. 简单英译汉SQL脚本
  15. 谷歌浏览器任务栏图标变白色解决方法
  16. c语言问号的用法及举例,问号的使用方法和另类用法有哪些
  17. 加拿大 oracle audio,来自加拿大的“简单”与“纯粹”——Verity Audio Otello座地式扬声器...
  18. 电脑白屏,电脑白屏怎么办
  19. 图解卡尔曼滤波(Kalman Filter)
  20. 摄影毁一生单反穷三代顺口溜_在美院读摄影专业是什么体验?不是累成狗也不是毁一生。...

热门文章

  1. 使用EasyExcel实现导入导出功能
  2. 大师上课那些非同凡响的开场白
  3. 港府将发4000港元给部分市民 或惠及280万人
  4. 基于Android平台的数码爱好者交流论坛社区
  5. 子网划分-详解为何两台主机网络掩码不一致却能ping通
  6. java读取mp3文件
  7. 李开复谷歌最后告别:遭同事难题“拷问”(图)
  8. MATLAB菜单选项在哪儿,matlab菜单之file菜单
  9. 机器学习实战:车牌识别系统
  10. signature=31a7d54e5a7d4d0a241cc0a54dc64ebc,VS2015安装失败