刚学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""的方式是同效的吗?
------解决方案--------------------
xcode的头文件搜索不是很清楚,但是如果是自己定义的头文件不应该跟库文件相同
------解决方案--------------------
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.
------解决方案--------------------
是不是和方法调用的顺序相同。