Donc j'essaie d'amener un projet C++ utilisant Qt et OpenGL écrit et compilé sur une machine Linux chez moi à la machine Windows 7, mais je rencontre des difficultés. J'ai d'abord appris que certaines choses gl (comme GL_TEXTURE0) n'étaient plus définies car gl.h ne les définissait pas pour les fenêtres. Aussi, le glext.h que j'ai ne définit pas certaines fonctions comme glActiveTexture. Ces deux problèmes que j'ai trouvés pourraient être résolus en introduisant un nouveau glext.h.Windows/opengl glext.h build issue
Mon problème le plus immédiat semble être que je ne l'apporte pas correctement. Si je le fais:
#define GL_GLEXT_LEGACY //should prevent old glext.h from being included
#define GL_GLEXT_PROTOTYPES //should make glActiveTexture be defined
#include <qgl.h>
#include "glext.h" //local up-to-date glext.h
#include <QGLShaderProgram>
alors make me dit que j'ai des références non définies à glActiveTexture. Si j'inclue QGLShaderProgram avant glext.h, j'ai toujours ce problème, mais make m'avertit aussi que je redéfinis un certain nombre de choses qui sont définies dans QGLShaderProgram et glext, donc je sais que le dernier fichier est inclus. Toute aide serait vraiment appréciée.
Pour votre information, il est presque toujours une mauvaise idée (et le plus souvent ne fonctionnera pas) juste télécharger un fichier d'en-tête arbitraire de l'Internet pour remplacer l'un de votre système en-têtes. OpenGL est un peu un cas particulier car il est implémenté par les pilotes graphiques, donc la manière typique d'y accéder sous Windows (sans Qt) est d'obtenir des pointeurs sur les fonctions lors de l'exécution. Une bibliothèque d'extension comme GLEW rend cela beaucoup plus facile. –