glad.o при использовании -fPIC отсутствуют символы

Для проекта с графическим интерфейсом у нас есть файл makefile, который создает библиотеку (.a) из всех файлов.o, которая затем связывается для каждого теста.

При этом любая неиспользуемая функция не включается в исполняемый файл. Чтобы не приходилось каждый раз перестраивать каждый тест, мы решили перейти на.so и использовать динамическое связывание. Этот код использует OpenGL и glad.o (glad.c -> glad.o)

libgrail.so: undefined reference to `glad_glProgramBinary'
libgrail.so: undefined reference to `glad_glGetProgramBinary'

У меня был рад.о, и я даже не знаю, как мы его получили. В нем определены указанные выше символы, но он не компилируется с помощью -fPIC и не может быть связан с общей библиотекой.

Когда я строю с glad.c, в результате glad.o НЕ содержит символов

Смотрим на заголовочный файл glad.h

GLAPI PFNGLPROGRAMBINARYPROC glad_glProgramBinary;
#define glProgramBinary glad_glProgramBinary

Они вызываются при компиляции шейдеров.

Так что, возможно, наш источник glad.c плох. Я просмотрел повсюду и могу найти его в различных демонстрациях opengl, но я не понимаю, откуда он на самом деле.

Я нашел этот генератор:https://glad.dav1d.de/

и сгенерированный код для OpenGL 3.3 (.c и.h), компилирующий этот код, имеет те же ошибки. Так какую версию glad.c я должен получить, чтобы правильно генерировать эти символы?

0 ответов

Другие вопросы по тегам