【问题标题】:Missing OpenGL headers on macmac 上缺少 OpenGL 标头
【发布时间】:2013-09-09 23:24:45
【问题描述】:

我正在尝试在 mac 中使用 OpenGL,但是当我包含 glut 标头时,它包含 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

谢谢大家

【问题讨论】:

    标签: xcode macos opengl


    【解决方案1】:

    在小牛队 (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】:

      对于遇到此问题的其他人来说,解决方案相当简单。问题是可能没有安装所有的命令行工具,所以关键是安装它们。您只需要按照this 帖子中的建议安装所有缺少的命令行工具。然后你就会有一个漂亮的 OpenGL hello world 运行顺利:D :D

      【讨论】:

      • 你可能应该Accept这个答案,这样人们就不会认为问题仍未解决;)
      【解决方案3】:

      在我所有的 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 添加到编译器/链接器开关中,以便正确定位包含和库。

      【讨论】:

      • 我不确定。我前一阵子安装了 XCode,然后,当再次重新安装它时,它并没有要求这个选项。我要深入一点。谢谢你。顺便说一句,OpenGL.Frameworks/.. 中没有 Headers 目录
      • @Andrés:一开始不应该有一个 - 应该是 OpenGL.framework/Versions/Current/Headers,这实际上是大多数时候到 OpenGL.framework/Versions/A/Headers 的符号链接。
      • 查看更新后的问题。 OpenGL.framework/ 目录中的任何地方都没有这样的子目录。
      • @Andrés:我完全没主意了。自 4.0 版以来,他们一定在 Xcode 中改变了一些东西。我能想到的最后一件事是ls -lAr "/System/Library/Frameworks/OpenGL.framework/Versions/"也许你有多个版本之类的,一个用于二进制分发,一个用于编译?
      猜你喜欢
      • 2015-05-24
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多