Включение glad.c
в команду компиляции не приведет к вводу заголовка, оно скомпилирует glad.c
и принесет объект из сгенерированного файла (так что это было бы несколько близко к -lglad
, если вы установили некоторыерад библиотека)
К сожалению, нет никакого пакета ubuntu для радости, следующая простейшая вещь будет просто скомпилировать примеры вместе с glfw (просто запустите cmake и make в папке glfw), но мыэто можно исправить в любом случае.
Понимание ошибки
glad.c:25:10: fatal error: glad/glad.h: No such file or directory
#include <glad/glad.h>
говорит, что «файлу glad.c нужен заголовок, расположенный в glad / glad.h, но я не могу его найти»
Это может быть проблемой с включаемыми путями (gcc не ищет в каталогах, в которых вы хотели его видеть), или файл на самом деле не здесь.
Просмотр glad.c
и simple.c
, они используют этот синтаксис:
#include <glad/glad.c
Включения могут быть двух видов, либо через двойные кавычки, в этом случае они называются «локальными включениями», и gcc будет искатьHeaders в текущем каталоге или с угловыми скобками, и они обычно являются «системными включениями»;вам нужно указать gcc, где их искать с помощью опции -I
Исправление
Существует несколько способов исправить это.
- Мы можем использоватькомандная строка / среда, которую ожидают файлы c.
Во-первых, соблюдайте иерархию zip, в сообщении, на которое вы ссылаетесь, должно быть два включаемых каталога, поэтому вам нужно поместить заголовки туда, где они былиzip-файл (glad.h в каталоге glad);
, затем скажите gcc найти включаемые файлы в текущем каталоге с помощью -I.
(. является текущим каталогом)
Командастрока будет выглядеть примерно так: gcc -o simple simple.c glad.c -I. -lglfw3 -l...
или
- change simple.c и glad.c для включения
"glad.h"
вместо <glad/glad.h>
;Затем файлы будут автоматически искать файл, в котором они были.
Попытавшись скомпилировать simple.c
так же, как вы это делали сейчас, вам также понадобится заголовок linmath.h
;Я не уверен, что если он приходит с радостью, но рад, и linmath.h
находятся в каталоге deps
glfw в дереве git, я бы предположил, что они также находятся в tar.