@famousman204

Почему не находит функцию?

Всем привет! Столкнулся с такой проблемой: На этапе компиляции, компилятор выдаёт сообщение об ошибке (компилировал с такими флагами: gcc demo.c -lglut -Werror -Wextra -Wall -o program):

/usr/bin/ld: /tmp/ccic0NXk.o: undefined reference to symbol 'glVertex3f'
/usr/bin/ld: /lib/x86_64-linux-gnu/libGL.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status


Код выглядит так:
#include <GL/glut.h>

void renderScene(void) {

	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

	glBegin(GL_TRIANGLES);
		glVertex3f(-0.5,-0.5,0.0);
		glVertex3f(0.0,0.5,0.0);
		glVertex3f(0.5,-0.5,0.0);
	glEnd();

	glutSwapBuffers();
}

int main(int argc, char **argv) {

	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
	glutInitWindowPosition(100,100);
	glutInitWindowSize(400,400);
	glutCreateWindow("Demo window");

   glutDisplayFunc(renderScene);

	glutMainLoop();

	return 1;
}

Если я убираю функцию с вертексами, то компилируется без ошибок и запускается.
VS Code автодоплнение включал для всех функций(я предполагаю, что значит они объявлены в header'е)
  • Вопрос задан
  • 353 просмотра
Решения вопроса 1
@famousman204 Автор вопроса
Нашёл решение, в уроке не было указано, что нужно ещё одну либу подцепить.
Вообщем нужно запускать с флагом -lGL
Надо компилировать так: gcc demo.c -lglut -lGL -Wall -Wextra -Werror -o program
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы