Проблемы с связью в Qt Creator? - PullRequest
1 голос
/ 24 января 2012

Я пытаюсь связать GLEW (с SDL и OpenGL - обратите внимание, не реализация SDL OpenGL) в Qt Creator через файл QMake, хотя мне не очень везет.Независимо от того, что я пытаюсь, я получаю те же строковые ошибки, которые связаны с conflicting declaration проблемами, возникающими из нескольких typedef с.Я хотел бы знать, почему это происходит, и что с этим можно сделать.

Пример

/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.ч

#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

Ответы [ 2 ]

0 голосов
/ 24 января 2012

У меня были подобные проблемы, до которых мы «решали», определяя NO_SDL_GLEXT перед включением <SDL/SDL_opengl.h>, поэтому:

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

Я говорю «решено», потому что это заставило ошибки идтипрочь, но я никогда не исследовал возможные побочные эффекты или проблемы (вскоре мы отошли от SDL и больше его не использовали).Возможно, стоит попробовать ...

0 голосов
/ 24 января 2012

Единственное решение вашей проблемы - не использовать один (GLEW или SDL_opengl) или, по крайней мере, не включать оба заголовка GL/glew.h и SDL/SDL_opengl.h в любой исходный файл или файл заголовка.

...