[英]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.h
和SDL/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.