XCode 的#include<> 头文件搜索顺序问题

warpo 2011-10-11 11:12:06
刚学XCode,版本3.2.1
虚拟机上装的雪豹系统.

因为要在此平台上编译一个C++第三方库.该库有些源码cpp中包含了头文件unistd.h.
代码是
#include<unistd.h>

第三方库源码目录下带有unistd.h.
MAC系统目录/usr/include下也有unistd.h

从C++语法来说.该句意思应是先从系统环境目录下去找再去找cpp源码所在目录下找unistd.h吧?
Objective-C 应当支持这语法吧?

但实际编译会出问题,问题原因是引用了第三方库cpp源码所在目录下的unistd.h.
而我期望的是让编译器去找/usr/include下的unistd.h,如果把第三方库cpp源码所在目录下的unistd.h删除,编译器才会找系统目录下的unistd.h.这样编译就不会出错.

我尝试修改了工程属性设置中的Search Paths中的Header Serch Paths为/usr/include Always Search User Paths(YSE或NO)均无效.
Other C++ Flags加入-I/usr/include 也无效.

求解!
XCODE下用#include<>的方式和#include""的方式是同效的吗?




...全文
2667 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
warpo 2011-10-13
  • 打赏
  • 举报
回复
主要原因搞清了.
在Project Setting中的
如果需要使用自己与系统库同名的头文件.则在Header Search项中指定头文件所在目录即可.
如果需要使用系统的与自己的库同名的头文件,Header Search项中不要设定自己同名头文件目录即可.
warpo 2011-10-12
  • 打赏
  • 举报
回复
问题自己解决了.因为不熟开发环境,所以后来才知道.在项目工程文件列表中里把自己的unistd.h头文件最右边的勾取消掉就可以了.原来如此!
散分.
warpo 2011-10-11
  • 打赏
  • 举报
回复
另外我通过vi ~/.bash_profile 设了环境变量.
export PATH=${PATH}:/usr/include

然后
source ~/.bash_profile
然后重启.

也没有用哦.

再然后奇怪的是我在XCODE中的Project Setting中,在Search Header Paths中填入$PATH.显示却没有/usr/include,还是原始的路径值.

编译出错时,查看的编译信息最前面部份中的setenv PATH中却也没有/usr/include
编译出错信息头几行如下:
CompileC build/vtl.build/Debug-iphonesimulator/vtl.build/Objects-normal/i386/fstream.o Source/vtl/fstream.cpp normal i386 c++ com.apple.compilers.gcc.4_2
cd /Users/warpo/Desktop/vtl
setenv LANG en_US.US-ASCII
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"

感到很奇怪.
求解中...
kingdom_0 2011-10-11
  • 打赏
  • 举报
回复
是不是和方法调用的顺序相同。
wfu 2011-10-11
  • 打赏
  • 举报
回复
Xcode uses the currently selected SDK as a base path, which it prefixes on to system includes. So if your SDK is /Developer/SDKs/MacOSX10.6.sdk then it will look under /Developer/SDKs/MacOSX10.6.sdk/usr/include by default for system includes.
ccnyou 2011-10-11
  • 打赏
  • 举报
回复
xcode的头文件搜索不是很清楚,但是如果是自己定义的头文件不应该跟库文件相同

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧