在Qt Creator中发现链接问题
Glew Linking Problems in Qt Creator?
我正试图通过QMake文件在Qt Creator中链接GLEW(与SDL和OpenGL——注意,不是SDL对OpenGL的实现),尽管我运气不太好。无论我尝试什么,我似乎都会得到相同的字符串错误,这些错误处理由几个typedef
s引起的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),或者至少不在任何源文件或头文件中同时包含GL/glew.h
和SDL/SDL_opengl.h
头。
我之前也遇到过类似的问题,我们通过在包含<SDL/SDL_opengl.h>
之前定义NO_SDL_GLEXT
来"解决"这些问题,因此:
#define NO_SDL_GLEXT
#include <SDL/SDL_opengl.h>
我说"解决了",因为它让错误消失了,但我从未调查过可能的副作用或问题(在那之后不久,我们就离开了SDL,也从未真正使用过它)。也许值得一试。。。
相关文章:
- 使用jsoncpp库时出现链接问题
- Cmake 链接问题:未定义对 Button::mousePressEvent(QGraphicsSceneMouseE
- 如何将GTest与CMake一起使用?遵循谷歌指南时的链接问题
- 未解决的外部链接问题
- 'make check' GLIBC 运行时的链接问题
- 在树莓派上用libtorch构建程序时的链接问题
- 野牛弹性链接问题
- 与 AWS 开发工具包的链接问题
- Qt & Firebase C++ SDK 在 iOS 上的链接问题
- 链接问题 boost::p ython::numpy.
- 与 32 位共享对象的链接问题
- 在单元测试项目中包括 .c 文件,并从多个 cpp 文件访问它而不会出现链接问题
- 安卓链接问题
- LLVM 传递链接问题:未定义的符号
- Cmake Mac OSX库链接问题:在Linux上进行编译,但在Mac上进行了编译
- 用libclang解析源文件 - 链接问题包括文件
- C / C++链接问题与非常简单的设置
- Zbar 在 vs2015 链接问题
- Vulkan + GLFW + Cmake在Linux环境下的链接问题
- TFS构建由于链接问题而失败