5

我正在尝试在 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

谢谢你们

4

3 回答 3

5

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

相反,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/

于 2014-03-23T12:32:13.993 回答
4

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

于 2013-09-06T01:09:03.603 回答
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 /版本/A/标题/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到编译器/链接器开关以正确定位包含和库。

于 2013-09-06T00:32:06.757 回答