刚学XCode,版本3.2.1 因为要在此平台上编译一个C++第三方库.该库有些源码cpp中包含了头文件unistd.h. 第三方库源码目录下带有unistd.h. 从C++语法来说.该句意思应是先从系统环境目录下去找再去找cpp源码所在目录下找unistd.h吧? 但实际编译会出问题,问题原因是引用了第三方库cpp源码所在目录下的unistd.h. 我尝试修改了工程属性设置中的Search Paths中的Header Serch Paths为/usr/include Always Search User Paths(YSE或NO)均无效. 求解! |
|
![]() |
另外我通过vi ~/.bash_profile 设了环境变量.
export PATH=${PATH}:/usr/include 然后 也没有用哦. 再然后奇怪的是我在XCODE中的Project Setting中,在Search Header Paths中填入$PATH.显示却没有/usr/include,还是原始的路径值. 编译出错时,查看的编译信息最前面部份中的setenv PATH中却也没有/usr/include 感到很奇怪. |
![]() 15分 |
xcode的头文件搜索不是很清楚,但是如果是自己定义的头文件不应该跟库文件相同
|
![]() 25分 |
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.
|
![]() 10分 |
是不是和方法调用的顺序相同。
|
![]() |
问题自己解决了.因为不熟开发环境,所以后来才知道.在项目工程文件列表中里把自己的unistd.h头文件最右边的勾取消掉就可以了.原来如此!
散分. |
![]() |
主要原因搞清了.
在Project Setting中的 如果需要使用自己与系统库同名的头文件.则在Header Search项中指定头文件所在目录即可. 如果需要使用系统的与自己的库同名的头文件,Header Search项中不要设定自己同名头文件目录即可. |