在Mac上缺少OpenGL标头

时间:2013-09-06 00:21:18

标签: xcode macos opengl

我正在尝试在mac中使用OpenGL,但是当我包含过量标题时,它包含一个OpenGL,那么它无法找到OpenGL/gl.h标题。 我在互联网上看到了问题,似乎这些文件应该在/System/Library/Frameworks/OpenGL.framework/Headers目录中,但是这样的子目录不存在。我尝试重新安装XCode但没有用。

有关我应该如何进行的任何建议。

一些细节:
这是/System/Library/Frameworks/OpenGL.framework/Versions/Current的样子:

localhost@Current$ ls -la
total 368
drwxr-xr-x   7 root  wheel     238 Oct  7  2012 .
drwxr-xr-x   4 root  wheel     136 Oct  7  2012 ..
drwxr-xr-x  16 root  wheel     544 Oct  7  2012 Libraries
-rwxr-xr-x   1 root  wheel  185184 Oct  3  2012 OpenGL
drwxr-xr-x   3 root  wheel     102 Jun 16  2011 PlugIns
drwxr-xr-x  14 root  wheel     476 Oct  7  2012 Resources
drwxr-xr-x   3 root  wheel     102 Oct  7  2012 _CodeSignature

谢谢大家

3 个答案:

答案 0 :(得分:4)

对于遇到此问题的其他人来说,解决方案相当容易。问题是可能并非所有命令行工具都已安装,因此关键是要安装它们。您只需按照this帖子中的建议操作,并安装所有缺少的命令行工具。那么你将有一个漂亮的OpenGL hello世界顺利运行:D:D

答案 1 :(得分:3)

在小牛队(10.9),这些被移动了。 / System / Library / Frameworks中的东西不再有任何开发头;它似乎纯粹是框架的部署版本。所以,Andés是对的 - 他正在寻找他被告知要看的确切位置,但他正在寻找的文件根本就不存在

相反,XCode本身将这些作为其安装的一部分进行存储 - XCode为各种版本的OS X提供了多个SDK,其中有这些库的标头。例如:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers /

答案 2 :(得分:0)

在我的所有OS X开发机器上,我都有:/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers

我甚至有针对目标版本的SDK:

  

/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/gl.h   /Developer/SDKs/MacOSX10.5.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/gl.h

     

...

[ andon@Aleph : ~ ] ls -lA "/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers"
total 1464
-rw-r--r--  1 root  wheel   557B Mar  3  2010 CGLContext.h
-rw-r--r--  1 root  wheel   381B Mar  3  2010 CGLCurrent.h
-rw-r--r--  1 root  wheel   389B Mar  3  2010 CGLDevice.h
-rw-r--r--  1 root  wheel    14K Mar  3  2010 CGLIOSurface.h
-rw-r--r--  1 root  wheel   128K Mar  3  2010 CGLMacro.h
-rw-r--r--  1 root  wheel   6.4K Feb 12  2011 CGLProfiler.h
-rw-r--r--  1 root  wheel    28K Feb 12  2011 CGLProfilerFunctionEnum.h
-rw-r--r--  1 root  wheel   1.5K Mar  3  2010 CGLRenderers.h
-rw-r--r--  1 root  wheel    14K Mar  3  2010 CGLTypes.h
-rw-r--r--  1 root  wheel   5.6K Mar  3  2010 OpenGL.h
-rw-r--r--  1 root  wheel   151K Mar  3  2010 gl.h
-rw-r--r--  1 root  wheel   267K Mar  3  2010 glext.h
-rw-r--r--  1 root  wheel   328B Mar  3  2010 gliContext.h
-rw-r--r--  1 root  wheel    63K Mar  3  2010 gliDispatch.h
-rw-r--r--  1 root  wheel    16K Mar  3  2010 glu.h
-rw-r--r--  1 root  wheel   2.6K Mar  3  2010 gluContext.h
-rw-r--r--  1 root  wheel   2.2K Mar  3  2010 gluMacro.h

无论文件位于何处,它位于.../Library/Frameworks/OpenGL.framework/...中的事实表明您需要将-framework OpenGL添加到编译器/链接器开关中,以便正确定位包和库。