2014-10-29 117 views
0

我有一個名爲wglew.h的OpenGL文件,我從http://glew.sourceforge.net/下載。使用wglew.h因爲我下載了它,我編譯程序,我有(我用的MacOSX)時收到以下錯誤:如何更改OpenGL源代碼文件?

/Users/Downloads/glew-1.11.0/include/GL/wglew.h:70:10: fatal error:'windows.h' file not found 

我試圖重新回到該文件的源代碼,將其依賴關係從windows.h更改爲我的Mac可以識別的內容。在wgle​​w.h文件的源代碼片段是:

#if !defined(WINAPI) 
# ifndef WIN32_LEAN_AND_MEAN 
# define WIN32_LEAN_AND_MEAN 1 
# endif 
#include <windows.h> 
# undef WIN32_LEAN_AND_MEAN 
#endif 

是否有可能解決此WINDOWS.H依賴關係,我的程序不會在這一步出錯了呢?我問了一個類似但並非完全相同的關於並行概念的問題:Where can I get windows.h for Mac?也許不是尋找一個等價的windows.h文件(如果Mac存在的話),我可以嘗試設計一個更微妙的方法來改變源代碼在wgle​​w.h文件中讓我的程序工作,並適應我正在經歷的窗口依賴項?

+0

@genpfault我想在Mac上編譯的程序使用OpenGL,並且我在Windows中製作了程序的GUI部分。 OpenGL在Windows上是原生的,因此在Mac上,我從http://glew.sourceforge.net/下載了必要的OpenGL組件。但是,正如您所看到的,wglew.h文件中存在Windows依賴項。 – warship 2014-10-29 04:10:26

+0

這顯然是MS窗口包含文件。您可能想要獲得OSX的glew包含文件。更好的是,下載*整個庫,並遵循安裝過程,因爲您很可能需要庫來生成可執行的工作文件。 – didierc 2014-10-29 07:22:10

+0

@white_rabbit:OpenGL在MacOS X上也是原生的。事實上,MacOS X的整個圖形系統都使用OpenGL。整個MacOS X用戶界面使用OpenGL。 OpenGL是MacOS X操作系統基礎的一部分。您不必在MacOS X上安裝任何軟件以獲得OpenGL。但是,由於OpenGL深入MacOS X中,這意味着您需要進行完整的操作系統升級才能升級OpenGL版本。 – datenwolf 2014-10-29 10:19:19

回答

0

這裏我們再去:GLEW不是OpenGL的一部分。這是第三方圖書館。

在MacOS X上不需要GLEW!

你在吠叫錯誤的樹!

而不是試圖修復GLEW(你不需要)。剛修好你的程序不使用GLEW在你的程序被編譯爲MacOS X的

無處不在,當你找到一個

#include <glew.h> 

#include <GL/glew.h> 

更改它

#ifndef __APPLE__ 
#include <GL/glew.h> 
#else 
#include <OpenGL/gl.h> 
#endif/*__APPLE__*/ 

將任何發生GLEW功能的地方稱爲

#ifndef __APPLE__ 
… 
#endif/*__APPLE__*/ 

塊也是如此。

在MacOS X上不需要GLEW!不要在那裏使用它。

+0

我現在得到一個'致命錯誤':當我用wgl.h替換wglew.h時'找不到'OpenGL/wgl.h'文件。也許我錯誤地更換了? – warship 2014-10-29 19:57:02

+0

@white_rabbit:在你的代碼中的任何地方你寫過'wglew.h'的地方嗎?從來沒有,即使在編譯Windows時也不要使用'wglew.h'。當使用GLEW時,只能使用'glew.h'而不是其他任何東西。看看我的回答,你使用'OpenGL/gl.h'(裏面沒有** W **)。 – datenwolf 2014-10-29 20:13:17

+0

@white_rabbit:爲了清楚起見,'wglew.h'和'wgl.h'是頭文件,用於訪問與OpenGL相關的Microsoft Windows特定助手API(創建OpenGL上下文等)。因爲包括這些頭文件使得代碼固有地鎖定在Windows上編譯。對於交叉平臺代碼,您絕對不能使用這些標頭。我認爲這是你原來的問題的一部分,你使用*這些*頭,而不是便攜式頭。 – datenwolf 2014-10-29 20:25:48