![]() |
Code::Blocks + modern OpenGL
Таки намучал себе новый OpenGL к любимому C::B и хочу поделить своим опытом, вдруг у кого будут проблемы.
Мы будем работать с: Code::Blocks GLEW GLFW Для начала, если нету, качаем C::B с официального сайта. Запускаем, создаем пустой проект(File->New->Project->Empty project). C::B не закрываем, пусть висит. Теперь качаем GLFW. Заходим на официальный сайт(см. выше), Download->Binaries for 32(64)-bit Windows Download. Качаем, распаковываем в любую папку. Теперь качаем GLEW. Заходим на главную и качаем не Bin а Source. Авторы не раскрыли, что ещё кроме их либ нужно подключить, чтобы GLEW заработал, поэтому нам придется подрубить его вручную. Тоже распаковываем это дело в любую папку. Разворачиваем наш C::B. Можете настроить его под проект, либо же установить глобальные настройки, дело ваше. Я расскажу как настроить под наш текущий проект. Слева, во вкладке Workspace, будет значок C::B с именем вашего проекта. Правая кнопка мыши->Build options->Linker settings. В other linker options пишем следующую строку: Код:
-lglfw3 -lopengl32 -lgdi32 -luser32 -lkernel32 Вкладка Compiler: здесь указываем пути к нашим include папкам библиотек. У меня получилось следующие: D:\OGL\GLFW\include D:\OGL\GLEW\inlcude Вкладка Linker: здесь указываем пути к lib папке GLFW. У меня получилось следующие: D:\OGL\GLFW\lib-mingw Та-дам, мы настроили C::B на работу. Теперь создадим файл "main.cpp" в папке с нашим проектом и заполним его следующим кодом: Нажимаем F9, видим белый треугольник и "WIN!" в консоли, радуемся тому, что у нас есть поддержка OpenGL 4.3 в отличном IDE - Code::Blocks. Спасибо за внимание, надеюсь, кому-нибудь пригодится:) |
Ответ: Code::Blocks + modern OpenGL
Выдает:
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Проверь пути во вкладке Compiler, возможно не то указал.
|
Ответ: Code::Blocks + modern OpenGL
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Там же, где и glew.h .
|
Ответ: Code::Blocks + modern OpenGL
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
В папку /include/GL.
|
Ответ: Code::Blocks + modern OpenGL
Глупый вопрос но все же задам его. Как добавить поддержку предыдущих версий GL?)
|
Ответ: Code::Blocks + modern OpenGL
Использовать старые версии OGL. Нельзя совместить функционал и нового и старого в одном проекте, как я понимаю, ведь там совсем разные подходы.
|
Ответ: Code::Blocks + modern OpenGL
Какой самый правильным способ объединить несколько библиотек в одну DLL? Запихнуть все исходники в один и из него уже запилить DLL?
|
Ответ: Code::Blocks + modern OpenGL
Цитата:
как показала практика - это самый удобный способ. Собирать статические либы в виде компонентов, или тем более длл-лок оказалось очень муторно. Да, увеличивается время компиляции и особенно время линковки, но зато настройки проекта можно менять очень быстро. Не собирая тыщи либ на каждый чих. |
Ответ: Code::Blocks + modern OpenGL
Ещё один вопрос касательно создания библиотеки. Как сделать статичную либу, которая использует для своей работы другие статичные либы?
Для поддержки OGL, приходится использовать как минимум следующие флаги:"-lopengl32 -lgdi32 -luser32 -lkernel32". Поэтому, если либа работает с OGL, она должна включить в себя данные библиотеки, что делать она отказывается:( Как быть? |
Ответ: Code::Blocks + modern OpenGL
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Милый Linux умеет объединять, разбивая статик либы на объекты, а потом компонуя обратно в либу. Также вычитал, что и студия умеет. GCC же, видимо, соснул:(
|
Ответ: Code::Blocks + modern OpenGL
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Да, моя ошибка, имел ввиду mingw.
Как, кстати, вообще Linux для разработчика? Есть ли существенные плюсы сравнивая с Windows? |
Ответ: Code::Blocks + modern OpenGL
ну POSIX и UNIX окружение решают как бы, но смотря где, мне например в последнее время нравится FreeBSD, особенно из-за этого https://wiki.freebsd.org/GPLinBase
но linux-based-os понятие растяжимое, есть как бы и source-based и packed-based os, никогда не задумывались что в некоторых редистрах юниксо-подобных ос есть папка инклуд где лежат C (и C++) хидеры ? =) source-based довольно интересные, например freebsd как раз source-based но линупсам не хватает нормальных IDE, я знаю только qt creator для C\C++, плюс gcc давно пора на покой, clang решает |
Ответ: Code::Blocks + modern OpenGL
Цитата:
Для небольших проектов достаточно хорошего текстового редактора с подсветкой синтаксиса, gcc и gdb. clang имхо слишком большой и сложный для маленьких и простых проектов, так что gcc ненадо на покой. |
Ответ: Code::Blocks + modern OpenGL
А, собственно, сам Code::Blocks чем плох?
|
Ответ: Code::Blocks + modern OpenGL
Хорошо настроенный vim может заменить ide.
Только настраивать придется по большей части самому, юникс вей же! |
Ответ: Code::Blocks + modern OpenGL
Samodelkin
Eclipse научился отслеживать изменения в файлах ? =) я уж лучше в nano попишу чем в нем - надежнее Цитата:
кстати не знаю чего он там большой, llvm по размеру почти как gcc, а clang это почти drop-in replacement Den и vifm тогда уж, да и присыпать awesome - будет совсем хорошо а если поднять wayland + enlightenment + freebsd то совсем от архаизмов и столмана откажемся, красота же =) Nikich попиши в qt creator хотя бы, чтобы было бы с чем сравнивать =) он недавно стал настолько мощный что я полностью отказался от msvs в пользу его |
Ответ: Code::Blocks + modern OpenGL
Цитата:
Здесь кстати кому как, а я не очень люблю в кодах нагромождения из шаблонов - они читабельность портят. Чрезмерное обобщение никчему. Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Цитата:
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Цитата:
Сам сижу под OS X. |
Ответ: Code::Blocks + modern OpenGL
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Цитата:
STL например для каких нибудь RAD подойдет наверное. А для основательных проектов можно выделить время и на разработку своей конвенции кодирования. Цитата:
Цитата:
|
Ответ: Code::Blocks + modern OpenGL
Samodelkin
С компилируется в много раз быстрее C++ потому что он гарантировано компилируется за один проход, в C11 добавили потоки, потому от POSIX мы зависим еще меньше в C++ не удобно что на каждом проекте изобретают вселенную (набор паттернов, фреймворков и тд), и чтобы программиста обучить им нужно довольно много времени, в C набор паттернов довольно ограниченный, и вход в проект дается куда проще |
Часовой пояс GMT +4, время: 05:27. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot