Связывание GLEW и GLFW3 на ma c в командной строке - PullRequest
0 голосов
/ 28 марта 2020

Итак, я нахожусь на ma c.

Я установил glew и glfw3 в командной строке через homebrew.

Теперь эти библиотеки с файлами .h находятся внутри / usr / local / include, и я могу включить их без ошибок (intellisense даже находит методы и прочее).

Дело в том, что в отличие от stdio.h string.h iostream e cc. их явно недостаточно.

Как только я соберу программу, на консоли появится это сообщение:

Undefined symbols for architecture x86_64:
  "_glewInit", referenced from:
      _main in es-97eafd.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Я не знаю, что делать, знаете ли вы, как правильно использовать эти библиотеки?

1 Ответ

1 голос
/ 28 марта 2020

Вот шаги, которые необходимо выполнить, чтобы заставить glew и glfw3 работать.

Я предполагаю, что вы уже установили их вместе с brew следующим образом:

brew install --universal glew
brew install --universal glfw3

Далее, когда вы компилируете код, вам нужно включить заголовки с флагом -I и ссылку на вышеуказанные библиотеки с флагом -l следующим образом:

-I/usr/local/include  -lGLEW -lglfw

Пример файла сборки должен выглядеть примерно так, как показано ниже, при условии, что мы разрабатываю приложение OpenGL в main.c с этими библиотеками.

BIN = hellot
CC = clang++
FLAGS = -Wall -pedantic -mmacosx-version-min=10.9 -arch x86_64 -fmessage-length=0 -UGLFW_CDECL -fprofile-arcs -ftest-coverage
INC = -I/usr/local/include
LOC_LIB = -lGLEW -lglfw
FRAMEWORKS = -framework Cocoa -framework OpenGL -framework IOKit
SRC = main.c

all:
    ${CC} ${FLAGS} ${FRAMEWORKS} -o ${BIN} ${SRC} ${INC} ${LOC_LIB}

Я также включил пример проекта на Github , который демонстрирует вышесказанное путем рендеринга трехмерного треугольника, привет мир графики. См. Тот же Makefile, указанный выше здесь .

...