Важная информация
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Где взять glut, gl и библиотеки импорта к ним для моего компилятора?

  1. #1 Где взять glut, gl и библиотеки импорта к ним для моего компилятора? 
    Профи Аватар для Сионист
    Регистрация
    21.01.2016
    Адрес
    Галактика Млечный Путь
    Сообщений
    509
    Сказал(а) спасибо
    11
    Поблагодарили 21 раз(а) в 20 сообщениях
    В build options linker settings добавлены: OPENGL32.LIB, glut32.lib, Glaux.lib, GLU32.LIB, glui.32.lib, но всё равно:
    ||=== Build: Debug in simplegl (compiler: MinGW64) ===|
    obj\Debug\simplegl.o||In function `RenderScene()':|
    D:\Projects\cpp\simplegl\simplegl\simplegl.cpp|8|u ndefined reference to `__imp_glClear'|
    D:\Projects\cpp\simplegl\simplegl\simplegl.cpp|9|u ndefined reference to `__imp_glFlush'|
    obj\Debug\simplegl.o||In function `SetupRC()':|
    D:\Projects\cpp\simplegl\simplegl\simplegl.cpp|14| undefined reference to `__imp_glClearColor'|
    obj\Debug\simplegl.o||In function `main':|
    D:\Projects\cpp\simplegl\simplegl\simplegl.cpp|19| undefined reference to `glutInitDisplayMode'|
    D:\Projects\cpp\simplegl\simplegl\simplegl.cpp|20| undefined reference to `glutCreateWindow'|
    D:\Projects\cpp\simplegl\simplegl\simplegl.cpp|22| undefined reference to `glutMainLoop'|
    ||=== Build failed: 6 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
    Последний раз редактировалось Сионист; 21.01.2016 в 11:33.
    Ответить с цитированием  
     

  2. #2  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    561
    Сказал(а) спасибо
    34
    Поблагодарили 248 раз(а) в 164 сообщениях
    Код выложите, пожалуйста.
    Какой компилятор используете? - я пользовался mingw и gcc, им при использовании opengl передавал в консоли примерно следующие опции (сейчас нагуглил может быть чуть-чуть другие):
    C++ Code:
    1. -lglew32 -lglfw3 -lopengl32 -lglu32 -lgdi32
    Последний раз редактировалось rrrFer; 21.01.2016 в 17:45.
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  3. #3  
    Профи Аватар для Сионист
    Регистрация
    21.01.2016
    Адрес
    Галактика Млечный Путь
    Сообщений
    509
    Сказал(а) спасибо
    11
    Поблагодарили 21 раз(а) в 20 сообщениях
    У меня MinGW64. Если нужна более подробная информация, скажите, где её посмотреть.
    передавал в консоли
    А из среды
    Code::Blocks the open source, cross-platform IDE 13.12 Build: Dec 27 2013, 12:58:38 - wx2.8.12 (windows, unicode) - 32 bit
    ? Куда эти настройки записать?
    C++ Code:
    1. #include <gl\\gl.h>
    2. #include "glut.h"
    3. void RenderScene()
    4. {
    5. glClear(GL_COLOR_BUFFER_BIT);
    6. glFlush();
    7. }
    8. void SetupRC()
    9. {
    10. glClearColor(0.0f, 0.0f, 1.0f, 0.0f);
    11. }
    12. int main()
    13. {
    14. glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
    15. glutCreateWindow("Simple");
    16. SetupRC();
    17. glutMainLoop();
    18. }
    Последний раз редактировалось Сионист; 22.01.2016 в 09:09.
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на си.
    Ответить с цитированием  
     

  4. #4  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    561
    Сказал(а) спасибо
    34
    Поблагодарили 248 раз(а) в 164 сообщениях
    Цитата Сообщение от Сионист Посмотреть сообщение
    #include <gl\\gl.h>
    Тут во-первых лишний слеш, мне кажется в директивах препроцессора ничего экранировать не надо.
    Во-вторых слеш лучше ставить в другую сторону.
    В-третьих
    C++ Code:
    1. #include <GL/gl.h>

    (регистр важен).
    Без этого с установленным опенглом ваш код возвращает ошибку (не знаю почему у вас иначе)
    main.cpp:1:23: fatal error: gl/gl.h: Нет такого файла или каталога
    После этого ваш код выдал другую ошибку:
    :2:22: fatal error: glut.h: Нет такого файла или каталога
    Насколько я понимаю, имена в кавычках указываются если файл лежит в каталоге проекта, но не в путях, указанных в PATH (может быть в PATH поиск тоже выполняется, но насколько я помню, в первую очередь ищется в текущем каталоге). Это раз. Не просто glut.h, а GL/glut.h. Это два.

    Наконец, я получил такие ошибки:
    rrrfer@linux-p5ue:~/project> g++ main.cpp
    /tmp/ccGNdCQR.o: In function `RenderScene()':
    main.cpp.text+0xa): undefined reference to `glClear'
    main.cpp.text+0xf): undefined reference to `glFlush'
    /tmp/ccGNdCQR.o: In function `SetupRC()':
    main.cpp.text+0x2b): undefined reference to `glClearColor'
    /tmp/ccGNdCQR.o: In function `main':
    main.cpp.text+0x3b): undefined reference to `glutInitDisplayMode'
    main.cpp.text+0x45): undefined reference to `glutCreateWindow'
    main.cpp.text+0x4f): undefined reference to `glutMainLoop'
    Как я уже писал, фиксится все простым передачей нужных библиотек линкеру, вот так ошибок уже нет:
    g++ main.cpp -lglut -lGLU -lGL
    Но код у вас все равно весь кривой и неправильный, при исполнении ошибка:
    rrrfer@linux-p5ue:~/project> ./main
    freeglut ERROR: Function <glutCreateWindow> called without first calling 'glutInit'.
    Насколько я понимаю, перед использованием функций глута нужно выполнить glutInit.


    Как делать это не через консоль, а через вашу IDE я не знаю, но гугл знает:
    Project->Build Options
    ...
    adding a linker location to libglut.a and libGLU.so
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  5. #5  
    Профи Аватар для Сионист
    Регистрация
    21.01.2016
    Адрес
    Галактика Млечный Путь
    Сообщений
    509
    Сказал(а) спасибо
    11
    Поблагодарили 21 раз(а) в 20 сообщениях
    Если регистр важен, то
    C++ Code:
    1. #include <gl/GL.H>
    2. #include <gl/glut.h>
    . Однако,
    D:\Projects\cpp\simplegl\simplegl\simplegl.cpp|4|fatal error: gl/glut.h: No such file or directory|
    , так что проблема не в регистре и слеше. Винда, кстати, различает регистр только при сохранении и переименовании файла, но не при его загрузке.
    Насколько я понимаю, имена в кавычках указываются если файл лежит в каталоге проекта, но не в путях, указанных в PATH (может быть в PATH поиск тоже выполняется, но насколько я помню, в первую очередь ищется в текущем каталоге). Это раз. Не просто glut.h, а GL/glut.h. Это два.
    Мне пришлось его скопировать в каталог проекта.
    libglut.a and libGLU.so
    А где их взять? У меня их нет, о том и тема. Если бы были, я знаю, как их подключить. У меня по дефолту и на WinAPIшные функции та же ругань про отсутствие ссылок на __imp_, надо каждый раз вручную подключать библиотеки с расширением a. Но libglut.a и libglut.a libGLU.so просто нет, о том и тема.
    Насколько я понимаю, перед использованием функций глута нужно выполнить glutInit
    Это точный код из "суперкниги", только один иклад заменён на два.
    Последний раз редактировалось Сионист; 23.01.2016 в 09:41.
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на си.
    Ответить с цитированием  
     

  6. #6  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    561
    Сказал(а) спасибо
    34
    Поблагодарили 248 раз(а) в 164 сообщениях
    Цитата Сообщение от Сионист Посмотреть сообщение
    Это точный код из "суперкниги", только один иклад заменён на два.
    Что за книга? - я мало работал с OpenGL, но уверен, что код кривой.
    Цитата Сообщение от Сионист Посмотреть сообщение
    Винда, кстати, различает регистр только при сохранении и переименовании файла, но не при его загрузке.
    Винда вообще не учитывает регистр при поиске, но код все равно должен быть переносимым ИМХО. Поэтому регистр должен быть нормальным и слеши правильные.
    Цитата Сообщение от Сионист Посмотреть сообщение
    А где их взять? У меня их нет, о том и тема
    Glut установлен вообще?
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  7. #7  
    Профи Аватар для FelixMacintosh
    Регистрация
    20.01.2014
    Сообщений
    390
    Сказал(а) спасибо
    57
    Поблагодарили 45 раз(а) в 37 сообщениях
    Вот гляньте, на исходниках чтото уже говорили про это
    < ссылка удалена модератором >

    Слеши для папок обычно такие \\\\\\\\\\\
    для вэб адресов такие /////////////
    Последний раз редактировалось >Quiet Snow<; 24.01.2016 в 10:39. Причина: Объединение сообщений
    Нет подписи : (
    Ответить с цитированием  
     

  8. #8  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,848
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1
    Во-вторых слеш лучше ставить в другую сторону.
    Неужели все сишные компиляторы такие грамотные и сами перефигачивают пути в зависимости от
    системы? Что-то терзают смутные сомнения.

    Что за книга? - я мало работал с OpenGL, но уверен, что код кривой.
    Кода подозрительно мало даже для стартовой инициализации. Понятно, что glut почти всё делает за
    программиста, но должно быть что-то ещё: размеры окна, настройка проекций.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  9. #9  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    561
    Сказал(а) спасибо
    34
    Поблагодарили 248 раз(а) в 164 сообщениях
    Цитата Сообщение от FelixMacintosh Посмотреть сообщение
    Слеши для папок обычно такие \\\\\\\\\\\
    для вэб адресов такие /////////////
    Правильный слеш всегда прямой(/).
    Во-первых, в некоторых случаях обратный слеш надо экранировать.
    Во-вторых, в линуксе при всем желании не сработает обратный слеш в пути. Т.е. Вы конечно можете использовать обратные слеши, но из за такой пустяковой причины ваша программа будет непереносима ни на линукс, ни на его форки (андроид в т.ч.). Возможно на Os/2 каком-нибудь аналогично.

    Цитата Сообщение от >Quiet Snow< Посмотреть сообщение
    Неужели все сишные компиляторы такие грамотные и сами перефигачивают пути в зависимости от
    системы? Что-то терзают смутные сомнения.
    Сишные компиляторы ничего не перефигачивают, я думаю они пользуются системным апи для поиска файлов, а в винде слеши могут быть любыми и регистр тоже.
    Я просто лично год бодался с парнем, который давал файлам имена в CamelCase регистре, а потом подключал их в нижнем регистре. В результате у него на винде проект отлично собирался, а я постоянно правил его код (по идее должно быть соглашение о кодировании, в котором ОБЫЧНО фиксируют, что имена файлов всегда записываются в нижнем регистре, т.к. ряд IDE при написании include дают подсказки без учета регистра).
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  10. #10  
    Профи Аватар для Сионист
    Регистрация
    21.01.2016
    Адрес
    Галактика Млечный Путь
    Сообщений
    509
    Сказал(а) спасибо
    11
    Поблагодарили 21 раз(а) в 20 сообщениях
    Что за книга? - я мало работал с OpenGL, но уверен, что код кривой.
    Липчак, Райт OpenGL.
    Писать можно на чём угодно, но зачем же так себя ограничивать? Пиши на си.
    Ответить с цитированием  
     

Страница 1 из 2 12 ПоследняяПоследняя
Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Новая версия компилятора 1.02.0
    от stabud в разделе FreeBasic
    Ответов: 13
    Последнее сообщение: 12.04.2015, 14:07
  2. Библиотеки
    от Good.Morning в разделе FreeBasic
    Ответов: 4
    Последнее сообщение: 03.01.2014, 22:29
  3. Библиотеки .NET
    от nas92 в разделе .NET
    Ответов: 0
    Последнее сообщение: 06.09.2013, 16:15
  4. Вышел релиз компилятора 0.90.1
    от stabud в разделе FreeBasic
    Ответов: 15
    Последнее сообщение: 28.07.2013, 13:32
  5. Вышла бета компилятора 0.90.0rc2
    от stabud в разделе FreeBasic
    Ответов: 12
    Последнее сообщение: 17.06.2013, 23:52
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •