2017-05-30 154 views
0

戰鬥得到的東西,試圖編譯後,我意識到需要改變一些代碼:當在OS X使用OpenGL VS GL

#ifdef __APPLE__ 
#include "OpenGL/gl.h" 
#include "OpenGL/glx.h" 
#else 
... 

需要改變成:

#ifdef __APPLE__ 
#include "GL/gl.h" 
#include "GL/glx.h" 
#else 
#... 

安裝後石英。然而,這也起作用:

#ifdef __APPLE__ 
#include "OpenGL/gl.h" 
#include "GL/glx.h" 
#else 
#... 

但是OpenGL/glx.h不存在。

OS X上的不同標題位置是什麼意思?爲什麼我有兩個不同的OpenGL文件位置?

+0

認爲它是一個目錄結構(因爲它)。系統將查找默認的include目錄(如果使用了「」,則爲本地目錄),因此它們將擴展到 /OpenGL/gl.h和/GL/glx .h – Aumnayan

+0

我應該再說一遍,謝謝你的回覆。 – rec

回答

0

第一種:您使用的是包含路徑的錯誤種類;我很驚訝這個作品。你想要的是:

#include <OpenGL/gl.h> 

注意使用尖括號而不是引號和OpenGL他的資本。

(您可能需要OpenGL的框架添加到您的項目,使這項工作。如果你不使用的XCode,添加-framework OpenGL到您的編譯器選項。)

二:不要在Mac上使用glx.h應用。 GLX是X11窗口系統的擴展,提供對GL的支持 - 它主要用於使用X11作爲桌面界面的UNIX/Linux系統上。 macOS桌面界面不是基於X11的,所以你不應該需要GLX。


的路徑的說明:

  • 在MacOS的GL/路徑指的是X11 GL標頭,如果已安裝XQuartz可能存在。他們是而不是你想要什麼。

  • OpenGL/是指OpenGL框架。

相關問題