Большое количество ошибок ссылок при кросс-компиляции приложения OpenGL для Windows - PullRequest
0 голосов
/ 26 марта 2011

Хорошо, вот такая ситуация:

У меня есть приложение, которое использует SDL и OpenGL.Я разрабатывал его в Linux (Ubuntu 10.10), и на этой платформе он компилируется, собирается и запускается без проблем.Я хотел бы иметь возможность протестировать свое приложение в Windows, и с этой целью я пытался скомпилировать его с помощью набора инструментов MinGW.В данный момент приложение компилируется без предупреждений, но я не могу заставить его правильно связать библиотеки OpenGL.Если быть точным, я получаю следующие ошибки большое количество раз:

неопределенная ссылка на _glUseProgram@4'<br> undefined reference to _glDetachShader @ 8 '
неопределенная ссылка на _glDeleteProgram@4'<br> undefined reference to _glDeleteShader @ 4'
неопределенная ссылка на _glCreateProgram@0'<br> undefined reference to _glCreateShader @ 4 '
неопределенная ссылка на _glShaderSource@16'<br> undefined reference to _glCompileShader @ 4'
неопределенная ссылка на _glGetShaderiv@12'<br> undefined reference to _glGetShaderInfoLog @ 16 '
неопределенная ссылка на `` _glAttachShader @ 8'
... и т. д.

Для полноты, команда, используемая для связывания приложения:

i586-mingw32msvc-g ++ -Wall -g -DGL_GLEXT_PROTOYPES -o <output file> <object files> -Llib / lib -lmingw32 -lSDLmain -lSDL -mwindows -lglu32 -lopengl32 -I./include -I / usr / include -I./lib

Поиск в GoogleЯ понял, что библиотеки glu32 и opengl32 поддерживают только раннюю версию OpenGL (например, 1.1 или 1.4), и мое приложение использует функции OpenGL 3.0+, так что это моя текущая теория того, откуда возникла проблема.При этом я действительно понятия не имею, как это исправить.

Следует отметить, что я очень плохо знаком с разработкой программного обеспечения, поэтому мое понимание того, как все это работает, довольно поверхностно.

1 Ответ

0 голосов
/ 26 марта 2011

Проблема, с которой вы сталкиваетесь, - это версия и доступные функции, да.Теоретически вы могли бы обрабатывать все это самостоятельно, но я бы очень рекомендовал использовать GLEW для обработки расширений и дополнительных функций для вас (может значительно упростить вещи).Основы для начала работы с GLEW: здесь , и как только вы его настроите, использовать дополнительные функции OpenGL довольно просто.GLEW также предоставляет некоторые проверки, чтобы увидеть, что доступно или проверить определенную функцию.

...