我正在爲基於Qt 3(辦公室政治)的遊戲添加OpenGL支持。基礎知識(QGLWidget等)工作正常。Qt與GLee衝突
爲了獲得OpenGL擴展,我隨意選擇了GLee(GLew沒有編譯出來)。
GLee.h和qgl.h不能很好地一起玩。 AFAICT,每一個都必須包含在另一個之前。
我在GLee.h中抽取了預處理檢查(確保它包含在第一個中),插入了包含OpenGL標頭之前使用的預處理指令,然後首先包含了qgl.h。在Linux上,它歸結爲:
#define __glext_h_ /* prevent glext.h from being included */
#define __glxext_h_ /* prevent glxext.h from being included */
#define GLX_GLXEXT_PROTOTYPES
#include <qgl.h>
#include "GLee.h" // my hacked version
即構建(不知道我的代碼是否能實際運行尚未...這一問題的先發制人[即我拖延]),但它似乎是一個可怕的雜牌。谷歌搜索已經出現了很多人問這個基本問題(儘管他們大多沒有仔細研究編譯器錯誤的錯誤,以便他們可以看到根本問題),但我還沒有看到任何實際的答案。
有沒有更好的(更優雅,便攜,強大等)的方式來做到這一點?
這聽起來很可疑。是什麼讓你相信每個標題必須包含在另一個之前?你得到的錯誤是什麼? – 2009-06-01 02:53:03
GLee.h有預編譯器檢查,所以它必須首先包含(這是我拿出這個黑客建立)。當我首先包含標準GLee.h時,我從qevent.h(有時是qnamespace.h)中獲得有關數字常量和在類之外使用的「friend」(以及其他暗示缺失}的地方)的錯誤。 http://www.qtcentre.org/forum/f-general-programming-9/t-problems-with-q-object-and-subclassing-823.html有一個很好的錯誤列表,但該修復程序沒有幫助我。 – James 2009-06-01 15:11:47
其中一個答案能解決你的問題嗎?你能標記一個被接受嗎? – 2013-09-17 08:15:30