Построение GLEW 1.7.0 на Windows с помощью MinGW
это было задано довольно много раньше:как скомпилировать источник GLEW 1.7.0 в Windows с помощью MinGW? цель состоит в том, чтобы динамически связываться с библиотекой из проекта c++.
подробнее: я работаю с QtCreator, использовать эрго qmake для сборки. Я на Windows 7. К настоящему времени я пробовал / посмотрел следующие ссылки.
использовать размещенный пакетный файл также попытался заменить gcc на g++
статический с vc++ libs, построить dll.повторное использование vc++ .dll файлы
получить MSYS run поставляется makefile
информация о начальных проблемах
простой материал с использованием двоичных файлов GLEW msvc++, работает на моем рабочем столе
к сожалению, все опубликованные решения заканчиваются следующими сообщениями об ошибках для меня, когда я использую скомпилированные результаты в своем проекте:
undefined reference to `glDrawElements@16'
debug/Ex04.o: In function `Z6initGLv':
undefined reference to `glClearColor@16'
undefined reference to `glEnable@4'
debug/Ex04.o: In function `Z8updateGLv':
undefined reference to `glClear@4'
undefined reference to `glViewport@16'
collect2: ld returned 1 exit status
mingw32-make.exe[1]: *** [debug/ecg4.exe] Error 1
mingw32-make.exe: *** [debug] Error 2
Я нахожусь в конце моего ума по этому вопросу. Я двойной и тройной проверил путь LIBS в qmake и переменную пути windows, чтобы включить каталог, где живут dll glew. Также INCLUDEPATH qmake'ом должно быть нормально. Здесь тропы .про файл так:
LIBS += -L$$quote(C:/mypath/freeglut/lib/) -lfreeglut
LIBS += -L$$quote(C:/mypath/glew-1.7.0/lib/) -lglew32 -lglew32mx
#LIBS+= C:/mypath/glew-1.7.0/lib/libglew32.dll.a
#LIBS+= C:/Programming/glew-1.7.0/lib/libglew32mx.dll.a
#includepath for project and the required libraries
INCLUDEPATH += ./include
INCLUDEPATH += "C:/mypath/glew-1.7.0/include"
INCLUDEPATH += "C:/mypath/freeglut/include"
Итак, есть ли кто-то, кто может дать надежный набор инструкций о том, как получить источник GLEW 1.7.0, скомпилированный с MinGW?
1 ответов
хорошо, я решил это.
в основном я скомпилировал GLEW правильно, насколько я могу видеть. Я забыл добавить -lopengl32-lglu32 к пути LIBS в моем проекте. По какой-то причине мне нужно сделать это в моей системе Qt/MinGW/Windows. На моем рабочем столе: Qt / VC++ / Windows мне не нужно этого делать. У кого-нибудь есть объяснение этому?
для тех, кто натыкается на ту же проблему:
- скачать источник (.зип) от GLEW Домашняя страница
- скомпилируйте источник, есть разные способы (ср. ссылки в начальном вопросе)
- >см. внизу (старый пакетный файл больше не находится на github) - поставить .файл DLL.файлы в каталоге, который будет частью вашего пути LIBS в qmake
- поставить .dll файлы в каталог, который является частью systemvariable PATH
- не забудьте связаться с opengl,glu, glew в вашем файле проекта qmake
вот фрагмент моего файл проекта:
#Required Libraries, replace with your path
# $$quote(...) for quoting pathes with spaces
LIBS += -L$$quote(C:/Programming/freeglut/lib/) -lfreeglut
LIBS += -L$$quote(C:/Programming/glew-1.7.0/lib/) -lglew32 -lglew32mx
# the following line is not necessary when working with VS compiler, odd
LIBS += -lopengl32 -lglu32
#includepath for project and the required libraries
INCLUDEPATH += ./include
INCLUDEPATH += "C:/Programming/glew-1.7.0/include"
INCLUDEPATH += "C:/Programming/freeglut/include"
в любом случае спасибо много, может быть, это помогает некоторым людям не забывать о зависимостях:)
Ура, Мориц!--3-->
Edit: Пакетный файл больше не работает, и мне просто пришлось скомпилировать glew 1.9.0. Итак, вот некоторые дополнительные примечания:
- убедитесь, что ar.exe и gcc.исполняемые на вашем пути. Для" стандартной установки QtSDK " эти программы можно найти по адресу C:\QtSDK\mingw\bin;
-
поместите следующие строки в пакетный файл в glew-1.х.папка г. Это сокращенная версия ответ LightningIsMyName
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 ar cr lib/libglew32.a src/glew.o gcc -DGLEW_NO_GLU -DGLEW_MX -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.mx.o -c src/glew.c gcc -shared -Wl,-soname,libglew32mx.dll -Wl,--out-implib,lib/libglew32mx.dll.a -o lib/glew32mx.dll src/glew.mx.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 ar cr lib/libglew32mx.a src/glew.mx.o
запустить пакетный файл. Результаты будут в папке lib/. Получающийся.dll и .файл DLL.файлы идут вместе (.файл DLL.a-это то, о чем вы хотите рассказать своему компоновщику .dll должна быть доступна системе во время выполнения). Этот.файлы предназначены для статического связывания.