当我在我的xcode项目中使用#include <OpenGL / gl.h>时,它在哪里查找gl.h文件?

我正在将一个开源的C ++程序移植到OS X上。 我一直在改变线路

#include <GL/gl.h> 

对此

 #include <OpenGL/gl.h> 

基于这篇文章的build议: 如何在我从Linux移植的C ++项目中使用Open GL

这种改变摆脱了编译器错误,但我很困惑:xcode /它使用的C ++编译器在哪里去寻找该文件? 如果我search我的xcode项目,我没有看到名为OpenGL的目录或文件= gl.h?

我习惯于根据.html文件的工作目录在网页中包含图片或JavaScript库。 xcode在这里发生了其他事情。

在Mac上,您将从OpenGL框架中获取这些标题。 标题位于:

 /System/Library/Frameworks/OpenGL.framework/Headers 

严格来说,这条道路是一个符号链接 – 真正的位置是:

 /System/Library/Frameworks/OpenGL.framework/Versions/A/Headers 

如果在编译器/链接器命令行上传递-framework OpenGL ,您的工具链将能够find它们。

如果您已经将OpenGL框架添加到您的项目中,则Xcode将把OpenGL/parsing为“OpenGL.framework中当前版本的头文件夹”。 这些文件不会被复制到您的项目中,您不需要担心框架在磁盘上的存储位置或内部布局。

从Xcode 5开始,如果启用了模块支持,则可以使用@import OpenGL; 都要在该编译器单元中包含这些符号,并确保链接器稍后将框架包含在内。