Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > netbeans + opengl


Автор: Mindstorm 1.9.2010, 23:21
Очень хотелось бы работать с opengl в netbeans. Есть плагин для java - JOGL, но предпочтительнее С++. Поиск в интернетах пока рабочих результатов не дал. Может кто-нибудь уже с этим сталкивался. Подскажите, пожалуйста, как организовать такую связку. Спасибо smile

Автор: Cheloveck 2.9.2010, 09:22
а почему бы не использовать напрямую GL.h и GLUT.h? Кстати, в GLUT довольно интересные фичи уже готовые есть. Кроме того, можно прикрутить ещё SDL, с ней тоже жизнь становится легче.

Автор: Amp 2.9.2010, 12:49
В чем вообще проблема? Настроить проект, прописать пути и подключить библиотеки?

Автор: Mindstorm 2.9.2010, 13:49
Собственно, что я делал. Добавил glut.h к хедерам проекта, в свойства проекта добавил в linker библиотеку glut32 (пробовал и lib, и dll) - не помогло. Выдает следующую ошибку: /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lglut32.
Кстати, пробовал также ложить glut.h к gl.h и glu.h в GL, но что-то оно его там все равно не находит %)

Автор: Amp 2.9.2010, 14:02
В lib должен лежать .a файл, а не .lib. Сборка glut для mingw ищется по запросу "glut mingw". Скорее всего пакет будет называться freeglut (соответственно линковщику передается -lfreeglut, а также -lopengl32 и наверное еще пара библиотек). По поводу заголовочных файлов - покажи как ты подключаешь glut.h.

Автор: Mindstorm 2.9.2010, 14:09
Я ставлю все это на винду, поэтому я так понимаю у меня .lib, а не .a и должно быть. Я использую компилятор cygwin. glut.h подключаю так: скопировал его в папку с проектом, потом правой кнопкой по папке header files на вкладке проекта -> Add Existing Item и добавляю. Ну и ясное дело потом #include в коде.

Автор: Mindstorm 2.9.2010, 14:31
Поместил glut.h в C:\cygwin\usr\include\w32api\GL и C:\cygwin\usr\include\. Теперь находит без добавления в проект, просто через директиву #include <GL/glut.h>
glut32.h поместил в C:\Windows\system32, но ошибка осталась.

Автор: Amp 2.9.2010, 15:14
Цитата(Mindstorm @  2.9.2010,  14:09 Найти цитируемый пост)
Я ставлю все это на винду, поэтому я так понимаю у меня .lib, а не .a и должно быть.

Дело не в ОС, а в компиляторе. Cygwin использует gcc, соответственно libname.a, который должен лежать в тех путях, по которым ищет библиотеки линковщик.

Автор: Mindstorm 2.9.2010, 19:39
Наконец-то нашел эту библиотеку - libglut32win.a. Поместил файлик в c:\cygwin\lib\. Указал библиотеку в linker (местонахождение самого .a файла), также пробовал подключать через option -lglut32win. В обоих случаях библиотека находиться, но возникает куча ошибок типа: undefined reference to `_glClear@4'. При чем как видим не только для glut* функций, а и для gl* - ничего не понимаю. Попытка указать в linker -lglut -lGL -lGLU (это решало проблему в KDevelop под Linux) приводит к ошибкам:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lglut
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lGL
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lGLU
Библиотек по таким путям правда нет, как и самих таких путей. В Линуксе они наверно были.

Кстати, в ошибке все функции имеют символ подчеркивания в начале undefined reference to `_glutInitWindowPosition', хотя в файле glut.h они идут без него. И опять же, откуда вообще ошибки для функций, к. входят в gl.h?

Автор: Amp 2.9.2010, 20:14
Цитата(Mindstorm @  2.9.2010,  19:39 Найти цитируемый пост)
Попытка указать в linker -lglut -lGL -lGLU (это решало проблему в KDevelop под Linux) приводит к ошибкам

Рассказывай, как подключаешь библиотеки. Что куда прописываешь. Нетбинс давно не видел, но должно быть как-то так http://forums.netbeans.org/post-58830.html

Автор: Mindstorm 2.9.2010, 20:31
да, я читал этот топик. Подключаю, как сказано в посте №2. Хотя libglut32win.a подключал и как в посте №3.
Сейчас подключение библиотек выглядит вот так:
http://ipicture.ru/
В итоге ошибки остались только для glut* функций. undefined reference to `_glutSwapBuffers'

Спасибо за участие)

Автор: Mindstorm 2.9.2010, 20:51
Нашел статью cygwin + opengl в к. говорится о том, что дополнительно необходимо поставить сервер x11. Но я качал по ссылке отсюда http://www.opengl.org/resources/libraries/glut/glut_downloads.php#windows и тут сказано:
Цитата
The most signficant update to GLUT is the integration of the X Window System and Win32 versions of GLUT in a single source tree. GLUT works for either Win32 or X11 now.
 Т.е. вроде как уже можно и не ставить.

Автор: Amp 3.9.2010, 10:36
Меня смущает, что библиотеки перечислены через -l. Этот ключ линковщика и в принципе никак не должен фигурировать в настройках проекта - IDE -l сама потом подставит при вызове. Версия нетбинса какая?

Автор: Mindstorm 3.9.2010, 20:09
Убрал ключи, сбилдил. После билда ключи сами появились, результат тотже. Версия netbeans 6.9.1.

Я так смотрю, что большинство подобных ошибок, обсуждаемых на форумах связаны как раз-таки с cygwin, в то время как для mingw есть step-by-step туториалы. Наверно я просто попробую остановиться на mingw.

Автор: Mindstorm 3.9.2010, 23:25
yeah!!! It's up and working smile
С mingw дела пошли намного веселее. Вот что я делал (может кому пригодится):
1. Загрузил mingw с офф-сайта (перенаправление на sourcefourge.net)
2. Загрузил http://web.cs.wpi.edu/~gogo/courses/mingw/winglut.zip (glut.h, libglut32win.a, glut32.dll)
3. Поставил mingw в C:\, отметив при установке как минимум С++ и msys.
4. Распаковал winglut и поместил: glut.h в C:\mingw\include\GL; libglut32win.a в C:\mingw\lib; glut32.dll в C:\windows\system32.
5. Добавил в переменную окружения Path строку ";C:\MinGW\bin\;C:\MinGW\msys\1.0\bin\".
6. Затем, если компилятор не определится автоматически (после указания переменных окружения вообще-то должен), то настраиваем вот так:
user posted image
7. Чуть не забыл. В linker прописываем следующие библиотеки: -lglut32win -lopengl32 -lgdi32 -lglu32. Как это сделать можно прочитать http://forums.netbeans.org/post-58830.html в посте №2.
Билдим, запускаем - все должно работать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)