繁体   English   中英

Qt Creator中的Glew链接问题?

[英]Glew Linking Problems in Qt Creator?

我想通过QMake文件在Qt Creator中链接GLEW(使用SDL和OpenGL-注意,不是SDL的OpenGL实现),尽管运气不佳。 无论我尝试什么,我似乎都会遇到相同的字符串错误,该错误处理由一些typedef引起的conflicting declaration问题。 我想知道的是为什么会这样,以及可以做些什么。

/usr/include/SDL/SDL_opengl.h:4855: error: conflicting declaration ‘typedef void (* PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum, GLenum, const GLfloat*)’
/usr/include/GL/glew.h:12201: error: ‘PFNGLFRAGMENTLIGHTFVSGIXPROC’ has a previous declaration as ‘typedef void (* PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum, GLenum, GLfloat*)’

这是因为我要链接到SDL(看它如何支持OpenGL),还是在这里进行其他操作?

Qmake文件

QT += core

LIBS += -lSDL -lSDL_image -lopengl32 -lGLU -lGLEW

stdafx.h

#pragma once

/*************/
/* #includes */
/*************/

//GL / SDL
#include <GL/glew.h>
#define GLEW_STATIC
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glext.h>
#include <SDL/SDL.h>
#include <SDL/SDL_opengl.h>

//STD
#include <iostream>
#include <fstream>

//Qt
#include <QListIterator>
#include <QMapIterator>
#include <QVector4D>
#include <QColor>

/********************/
/* Using Statements */
/********************/

using std::cout;
using std::endl;
using std::cin;

using std::fstream;

stdafx.cpp

#define GL_GLEXT_PROTOTYPES

解决问题的唯一方法是不使用任何一个(GLEW或SDL_opengl),或者至少不在SDL/SDL_opengl.h文件或头文件中同时包含GL/glew.hSDL/SDL_opengl.h头。

我遇到了类似的问题,在此之前,我们通过在包含<SDL/SDL_opengl.h>之前定义NO_SDL_GLEXT “解决”,因此:

#define NO_SDL_GLEXT
#include <SDL/SDL_opengl.h>

我说“已解决”是因为它使错误消失了,但是我从未研究过可能的副作用或问题(此后不久,我们最终脱离了SDL,并且不再使用它了)。 也许值得一试...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM