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 я должен получить, чтобы правильно генерировать эти символы?