Ошибки при создании GLAD с помощью gcc

#c #opengl #glad

#c #opengl #рад

Вопрос:

у меня проблемы с ГЛЭД. Я загрузил исходные файлы с этой конфигурацией:

  • Язык — C/C
  • Спецификация — OpenGL
  • API — gl Версии 4.6
  • Профиль — Ядро
  • Установлен флажок Сгенерировать загрузчик

После распаковки архива я получил эту структуру (на данный момент сделал ее максимально простой).:

 project/
    main.c
    glad.h
    glad.c
    khrplatform.h
 

У main.c меня что-то вроде этого:

 #include "./glad.h"
#include <GLFW/glfw3.h>

int main() {
    return 0;
}
 

И, наконец, я попытался скомпилировать его с gcc помощью, потому что мой проект будет находиться в c :

 gcc main.c glad.c -lglfw -lGL -ldl -I. -o run
 

Но я получил эти ошибки:

 glad.c:1328:1: error: unknown type name ‘PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC’; did you mean ‘PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC’?
 1328 | PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT = NULL;
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      | PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC
glad.c:1328:87: warning: initialization of ‘int’ from ‘void *’ makes integer from pointer without a cast [-Wint-conversion]
 1328 | PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT = NULL;
      |                                                                                       ^~~~
glad.c: In function ‘load_GL_EXT_framebuffer_multisample’:
glad.c:2441:46: error: ‘PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC’ undeclared (first use in this function); did you mean ‘PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC’?
 2441 |  glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)load("glRenderbufferStorageMultisampleEXT");
      |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                              PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC
glad.c:2441:46: note: each undeclared identifier is reported only once for each function it appears in
glad.c:2441:89: error: expected ‘;’ before ‘load’
 2441 |  glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)load("glRenderbufferStorageMultisampleEXT");
      |                                                                                         ^~~~
      |                                                                                         ;
 

Этот код действительно кажется мне странным, но он взят из библиотеки, так что использовать его самостоятельно выглядит не очень хорошо…

Комментарии:

1. можете ли вы дать нам постоянную ссылку на эту конфигурацию? У glad.c меня есть только 1834 строки, а не 2441

2. Конечно, @genpfault, вот оно

3. Вы хотели @kaios, я только отредактировал вопрос 🙂

4. Упси… моя вина

5. @kaios, maaan …. я не знаю, что это за магия, но она действительно работает)

Ответ №1:

Просто убедитесь, что вы загрузили правильную конфигурацию GLAD, все будет хорошо.