2011-09-26 2 views
4

Je reçois des références non définies lors de la construction de mon projet. Voici le journal de construction:Problème de liaison d'application OpenGL + GLEW + MinGW

**** Build of configuration Debug for project test **** 

**** Internal Builder is used for build    **** 
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\main.o ..\src\main.cpp 
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\test.o ..\src\test.cpp 
g++ -O0 -g3 -Wall -c -fmessage-length=0 -o src\window.o ..\src\window.cpp 
..\src\window.cpp: In member function 'void Window::StartRenderContext()': 
..\src\window.cpp:150:24: warning: NULL used in arithmetic 
..\src\window.cpp:161:28: warning: NULL used in arithmetic 
..\src\window.cpp:174:24: warning: NULL used in arithmetic 
g++ -mwindows -l glew32 -l glew32s -l glu32 -l opengl32 -o test.exe src\window.o src\test.o src\main.o 
src\window.o: In function `ZN6Window18StartRenderContextEv': 
C:\eclipse\workspace\test\Debug/../src/window.cpp:101: undefined reference to `[email protected]' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:102: undefined reference to `[email protected]' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:115: undefined reference to `glewInit' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:125: undefined reference to `[email protected]' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:126: undefined reference to `[email protected]' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:148: undefined reference to `__wglewChoosePixelFormatARB' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:159: undefined reference to `__wglewChoosePixelFormatARB' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:185: undefined reference to `__wglewCreateContextAttribsARB' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:194: undefined reference to `__wglewCreateContextAttribsARB' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:204: undefined reference to `__wglewCreateContextAttribsARB' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:214: undefined reference to `__wglewCreateContextAttribsARB' 
C:\eclipse\workspace\test\Debug/../src/window.cpp:227: undefined reference to `[email protected]' 
collect2: ld returned 1 exit status 
Build error occurred, build is stopped 
Time consumed: 8128 ms. 

Voici ma commande link:

g++ -mwindows -l glew32 -l glew32s -l glu32 -l opengl32 -o test.exe src\window.o src\test.o src\main.o 

Est-ce exact? J'utilise les binaires 64 bits de glew (je pense que les 32 ne veulent rien dire). Étaient-ils uniquement destinés à être utilisés avec Visual Studio?

est ici includes dans mon code:

#include "Windows.h" 
#include "GL/glew.h" 
#include "GL/wglew.h" 
#include "GL/gl.h" 
#include "GL/glu.h" 
#include "test.h" 

J'utilise Eclipse Indigo CDT, MinGW, Win32, OpenGL et glew.

+0

Pourquoi sont vous incluez 'wglew.h'? Et pourquoi incluez-vous 'gl.h' après avoir inclus' glew.h'? – genpfault

+0

J'utilise wglew pour initialiser glew avec wgl, qui je crois est la bibliothèque exclusive requise pour cela. En termes de gl et glu, je les ai inclus dans l'espoir qu'il résoudrait les appels de fonction. Ce n'est pas le cas, alors je pourrais essayer de les enlever. Je vais aussi enlever wglew et voir si cela pourrait résoudre ces problèmes, je ne suis pas sûr cependant. – AutoBotAM

+0

D'accord, j'ai limité les inclusions à juste 'glew.h' et' wglew.h', je suis maintenant seulement en incluant 'glew32s.lib', et j'ai défini' GLEW_STATIC' mais je reçois toujours l'exact mêmes références indéfinies! Si quelqu'un essaie une application glew dans un environnement CDT Eclipse Indigo avec MinGW, pourraient-ils publier leurs résultats s'il vous plaît? xD – AutoBotAM

Répondre

1

J'ai résolu les problèmes de "référence indéfinie".

Mon environnement de développement est eclipse CDT avec MinGW sous Windows 7 (x64).

La solution est les 3 étapes suivantes:

  1. Ajouter code source: #define GLEW_STATIC
  2. Ajouter drapeau linker: -lglew32s -lopengl32 -lfreeglut
  3. Ajouter compilation drapeau: gcc -DGLEW_STATIC

Si nécessaire, vous avez pour ajouter -lglu32 -glut32 etc.