2011-09-26 3 views
4

Я получаю некоторые неопределенные ссылки при создании моего проекта. Вот лог сборки:Проблема с соединением 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. 

Вот моя команда ссылка:

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

Правильно ли это? Я использую 64-битные двоичные файлы glew (я думаю, что 32s ничего не значат). Были ли они предназначены только для визуальной студии?

Вот включает в мой код:

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

Я использую Eclipse, Indigo CDT, MinGW, Win32, OpenGL и GLEW.

+0

Почему вы включаете 'wglew.h'? И почему вы включаете 'gl.h' после включения' glew.h'? – genpfault

+0

Я использую wglew для инициализации glew с wgl, который, я считаю, является эксклюзивной библиотекой, необходимой для этого. С точки зрения gl и glu я включил их в надежды на то, что он разрешит вызовы функций. Это не так, поэтому я могу попытаться их удалить. Я также удалю wglew и посмотрю, действительно ли это может решить эти проблемы, но я не уверен. – AutoBotAM

+0

Хорошо, я сократил количество включений только до 'glew.h' и' wglew.h', теперь я включаю только 'glew32s.lib' и определил' GLEW_STATIC', но я все еще получаю точные такие же неопределенные ссылки! Если кто-то попробует приложение glew в среде CDT Eclipse Indigo с MinGW, могут ли они опубликовать их результаты, пожалуйста? xD – AutoBotAM

ответ

1

Я решил проблему с «неопределенными ссылками».

Моя среда разработки - eclipse CDT с MinGW на Windows 7 (x64).

Решение следующие 3 шага:

  1. Добавить исходный код: #define GLEW_STATIC
  2. Добавить компоновщика флаг: -lglew32s -lopengl32 -lfreeglut
  3. Добавить сводную флаг: gcc -DGLEW_STATIC

В случае необходимости, у вас есть добавить -lglu32 -glut32 и т. д.

Смежные вопросы