С Новым годом! Форум программистов, компьютерный форум, киберфорум
OpenGL
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/40: Рейтинг темы: голосов - 40, средняя оценка - 4.60
3 / 3 / 0
Регистрация: 01.07.2017
Сообщений: 146

Не удаются подключить библиотеку GLAD

30.08.2017, 11:59. Показов 8807. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ку всем
Использую QTCreator. Подключил GLFD. При попытке попытке подключить GLAD выдаёт ошибки. Ошибки разные, в зависимости от очередности подключения GLAD относительно файлов библиотеки GLFD, а т.е.:

При таком раскладе:
C++ (Qt)
1
2
3
4
5
#include <iostream>
#include "glad/glad.h"
#include "glfw3.h"
#include "glfw3native.h"
#include "gl/gl.h"
Выдаёт ошибки:
C:\Users\General\Documents\untitled\main .cpp:34: ошибка: undefined reference to `glad_glClear'

collect2.exe:-1: ошибка: error: ld returned 1 exit status

В строке 34 использую функцию glClear(GL_COLOR_BUFFER_BIT);

А при таком раскладе:
C++ (Qt)
1
2
3
4
5
#include <iostream>
#include "glfw3.h"
#include "glad/glad.h"
#include "glfw3native.h"
#include "gl/gl.h"
Выдаёт ошибку:

C:\Users\General\Documents\build-untitled-Desktop_Qt_5_9_1_MinGW_32bit-Debug\glad\glad.h:26: ошибка: #error OpenGL header already included, remove this include, glad already provides it
#error OpenGL header already included, remove this include, glad already provides it
^


Да, есть ошибки, зависящие от очередности подключения библиотек, но непонятно, в какую сторону копать и как избавится от ошибок...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.08.2017, 11:59
Ответы с готовыми решениями:

Можно ли программно подключить библиотеку VBA, в частности библиотеку Microsoft Visual Basic for Application Extensebility?
Кто знает, можно ли программно подключить библиотеку VBA, в частности библиотеку Microsoft Visual Basic for Application Extensebility. А то...

Подключить библиотеку
Я сам только-только начинаю разбираться в C#. Хотел к своему проекту подключить библиотеку, но в свободном доступе ее не нашел и видимо...

Подключить библиотеку
Требуется, чтобы C# не ругался на строчку using AForge.Imaging.Filters.ColorFiltering; Я скачал библиотеку Aforge и подключил все длл,...

10
 Аватар для vindast
61 / 58 / 11
Регистрация: 25.04.2017
Сообщений: 509
30.08.2017, 12:27
C++
1
2
3
4
5
#include <iostream>
#include "glad/glad.h"
#include "glfw3.h"
#include "glfw3native.h"
//#include "gl/gl.h"
1
3 / 3 / 0
Регистрация: 01.07.2017
Сообщений: 146
30.08.2017, 13:11  [ТС]
vindast, при таком раскладе выдаёт те же ошибки, что и в первом случае:

C:\Users\General\Documents\untitled\main .cpp:34: ошибка: undefined reference to `glad_glClear'

collect2.exe:-1: ошибка: error: ld returned 1 exit status

Вот мой файл untitled.pro, м.б. в нём проблема:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
 
QT += opengl
LIBS += -lopengl32
 
SOURCES += main.cpp
 
win32: LIBS += -L$$PWD/../../../../GLFW/lib-mingw/ -lglfw3
 
INCLUDEPATH += $$PWD/../../../../GLFW/lib-mingw
DEPENDPATH += $$PWD/../../../../GLFW/lib-mingw
 
win32: LIBS += -L$$PWD/../../../../GLFW/lib-mingw/ -lglfw3dll
 
INCLUDEPATH += $$PWD/../../../../GLFW/lib-mingw
DEPENDPATH += $$PWD/../../../../GLFW/lib-mingw
 
INCLUDEPATH += $$PWD/../../../../GLFW/include/GLFW/
 
HEADERS += \
    ../../../../GLFW/include/GLFW/glfw3.h \
    ../../../../GLFW/include/GLFW/glfw3native.h
 
win32: LIBS += -L$$PWD/../../../../Qt/Tools/mingw530_32/i686-w64-mingw32/lib/ -lgdi32
 
INCLUDEPATH += $$PWD/../../../../Qt/Tools/mingw530_32/i686-w64-mingw32/include
DEPENDPATH += $$PWD/../../../../Qt/Tools/mingw530_32/i686-w64-mingw32/include
Добавлено через 7 минут
Нашёл темку в инте с похожей проблемой https://stackoverflow.com/ques... s-included
Там предлагают добавить GLFW_INCLUDE_NONE в мои предпроцессорные директивы, только вот что это значит - не пойму...
0
 Аватар для vindast
61 / 58 / 11
Регистрация: 25.04.2017
Сообщений: 509
30.08.2017, 13:40
Цитата Сообщение от General_TaO Посмотреть сообщение
Там предлагают добавить GLFW_INCLUDE_NONE в мои предпроцессорные директивы, только вот что это значит - не пойму...
C++
1
#define GLFW_INCLUDE_NONE
1
3 / 3 / 0
Регистрация: 01.07.2017
Сообщений: 146
30.08.2017, 15:16  [ТС]
Мдаа.... "Решил" проблему, закомментировав 34 строку с функцией... Может, это устаревшая функция? Боюсь, что отголосок этой проблемы настигнет меня снова. Как думаете, почему так происходит? Какие мысли?

Добавлено через 43 минуты
Также компилятор ругается на такие функции, как glViewport gladLoadGLLoader. Как это устранить?
0
 Аватар для vindast
61 / 58 / 11
Регистрация: 25.04.2017
Сообщений: 509
30.08.2017, 16:05
соберите проект в vs2015
тогда я точно вам оперативно подскажу
тут скорей всего библиотеки не подключены

Добавлено через 1 минуту
зачем глад вообще? только начинаете изучать?
1
3 / 3 / 0
Регистрация: 01.07.2017
Сообщений: 146
30.08.2017, 19:05  [ТС]
В соседней темке мне чувак посоветовал гайд в виде текста на инглише. Автор посоветовал подключить эту библиотеку, т.к. там есть самые новые функции opengl. Да я начинаю изучать opengl, но я хочу изучать современные и оптимизированные ф-ии.

Добавлено через 7 минут
Что касается vs, я удалил версию 2017, т.к. туда нельзя было приконектить одну из библиотек для OpenGL. Удалял через анинсталлер в панели задач. Но после этого не могу установить 2015 версию, из-за отсутствующих пакетов... Вот и решил смениться на что-то проще...
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
31.08.2017, 09:38
Лучший ответ Сообщение было отмечено General_TaO как решение

Решение

Цитата Сообщение от General_TaO Посмотреть сообщение
Вот и решил смениться на что-то проще...
вот пример
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <windows.h>
#include <iostream>
 
 
// THIS IS OPTIONAL AND NOT REQUIRED, ONLY USE THIS IF YOU DON'T WANT GLAD TO INCLUDE windows.h
// GLAD will include windows.h for APIENTRY if it was not previously defined.
// Make sure you have the correct definition for APIENTRY for platforms which define _WIN32 but don't use __stdcall
#ifdef _WIN32
    #define APIENTRY __stdcall
#endif
 
// GLAD
#include <glad/glad.c>
 
// confirm that GLAD didn't include windows.h
#ifdef _WINDOWS_
    #error windows.h was included!
#endif
 
// GLFW
#include <GLFW/glfw3.h>
 
 
// This example is taken from [url]http://learnopengl.com/[/url]
// [url]http://learnopengl.com/code_viewer.php?code=getting-started/hellowindow2[/url]
// The code originally used GLEW, I replaced it with Glad
 
// Compile:
// g++ example/c++/hellowindow2.cpp -Ibuild/include build/src/glad.c -lglfw -ldl
 
 
// Function prototypes
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);
 
// Window dimensions
const GLuint WIDTH = 800, HEIGHT = 600;
 
// The MAIN function, from here we start the application and run the game loop
int main()
{
    std::cout << "Starting GLFW context, OpenGL 3.3" << std::endl;
    // Init GLFW
    glfwInit();
    // Set all the required options for GLFW
    glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
    glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
    glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
 
    // Create a GLFWwindow object that we can use for GLFW's functions
    GLFWwindow* window = glfwCreateWindow(WIDTH, HEIGHT, "LearnOpenGL", NULL, NULL);
    glfwMakeContextCurrent(window);
    if (window == NULL)
    {
        std::cout << "Failed to create GLFW window" << std::endl;
        glfwTerminate();
        return -1;
    }
 
    // Set the required callback functions
    glfwSetKeyCallback(window, key_callback);
 
    if (!gladLoadGLLoader((GLADloadproc) glfwGetProcAddress))
    {
        std::cout << "Failed to initialize OpenGL context" << std::endl;
        return -1;
    }
 
    // Define the viewport dimensions
    glViewport(0, 0, WIDTH, HEIGHT);
 
    // Game loop
    while (!glfwWindowShouldClose(window))
    {
        // Check if any events have been activated (key pressed, mouse moved etc.) and call corresponding response functions
        glfwPollEvents();
 
        // Render
        // Clear the colorbuffer
        glClearColor(0.2f, 0.3f, 0.3f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT);
 
        // Swap the screen buffers
        glfwSwapBuffers(window);
    }
 
    // Terminates GLFW, clearing any resources allocated by GLFW.
    glfwTerminate();
    return 0;
}
 
// Is called whenever a key is pressed/released via GLFW
void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode)
{
    std::cout << key << std::endl;
    if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
        glfwSetWindowShouldClose(window, GL_TRUE);
}
Вложения
Тип файла: rar include.rar (61.0 Кб, 16 просмотров)
1
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
31.08.2017, 09:39
если glad.h не работает используй glad.c
1
3 / 3 / 0
Регистрация: 01.07.2017
Сообщений: 146
31.08.2017, 13:21  [ТС]
Цитата Сообщение от Antikl Посмотреть сообщение
вот пример
Спасибо большое, ваш пример работает. Но только если закомментировать строку 17:
C++ (Qt)
1
   //#error windows.h was included!
Если её раскомментировать, то вы даёт эту самую ошибку. Только я не понимаю, что конкретно значит эта ошибка.
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
31.08.2017, 15:01
Цитата Сообщение от General_TaO Посмотреть сообщение
то вы даёт эту самую ошибку.
без нее будет работать,
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.08.2017, 15:01
Помогаю со студенческими работами здесь

Подключить библиотеку
Вопрос чайника - в каком месте подключается библиотека, таким образом, чтобы функции были доступны во всех кнопках? Пока что работает...

Как подключить библиотеку в Qt
Вообщем делаю курчас,в QT.Мне нужен был класс матриц я его нашел http://cppstudio.com/post/4946/,но проблема в том что выдает ошибку на...

Подключить библиотеку mathgl
Здравствуйте, подскажите, как подключить mathgl к qt. В общем скачал я mathgl-2.3-mingw.i686 распаковал в папку. В документации написано,...

А как подключить библиотеку в c++ ?
А как подключить библиотеку в c++ ? К примеру для музыки или видео... :wall:

Подключить библиотеку в манифесте
{ &quot;manifest_version&quot;: 2, &quot;name&quot;: &quot;Lost Time&quot;, &quot;version&quot;: &quot;1.0&quot;, &quot;content_scripts&quot;: , &quot;js&quot;: } ] ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru