It is impossible to compile an error. Please help, who faced a similar problem? OS: Ubuntu IDE: Clion
CMakeFiles/a4_waves_OpenGL.dir/main.cpp.o: In function display()':
/home/alex/ClionProjects/test/a4-waves_OpenGL/main.cpp:7: undefined reference to
glClear'
..............................
/home/alex/ClionProjects/test/a4-waves_OpenGL/main.cpp:9: undefined reference to glColor3f'
/home/alex/ClionProjects/test/a4-waves_OpenGL/main.cpp:42: undefined reference to
glutMainLoop'
collect2: error: ld returned 1 exit status
make[3]: *** [a4_waves_OpenGL] Error 1
code
#include <iostream>
#include <math.h>
#include <GL/freeglut.h>
using namespace std;
void display() {
glClear(GL_COLOR_BUFFER_BIT); ///очистим буфер
glColor3f(0.0,1.0,0.0); ///зададим цвет которым будем "рисовать". Я выбрал зелёный.
glBegin(GL_LINES); ///начнём рисовать первую координатную ось - OX. Будем это делать при помощи линий
glVertex2f(-550,0); ///первая точка оси
glVertex2f(550,0); ///вторая точка оси
glEnd();
glBegin(GL_LINES); ////теперь проделаем тоже для оси OY
glVertex2f(0,150);
glVertex2f(0,-150);
glEnd();
glBegin(GL_LINE_STRIP); ///начнём рисовать синусоиду при помощи ломаной линии
glColor3f(1.0,0.0,0.0); ///выберем для неё красный цвет
for (int i = -500; i <= 500; i++) {
float y = 100 * sin(i*M_PI/180); ///вычислим текущую координату Y. Функция Sin() принимает значение в радианах, поэтому i следует умножить на число Пи и разделить на 180. Весь результат умножим на 100, указав тем самым максимальную высоту нашей синусоиды.
glVertex2d(i,y);
}
glEnd();
glFlush();
}
int main(int argc, char **argv) {
glutInit(&argc,argv); ///инициализируем glut
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); ///использовать 1 буфер, и цвет типа RGB (3 составляющие)
glutInitWindowSize(240,240); ///зададим размер окна 240x240
glutInitWindowPosition(0,0); ///позиция открытия окна
glutCreateWindow("Sin"); ///создать окно с именем "Sin"
glClearColor(1.0 , 1.0 , 1.0 , 1.0); ///цвет фона окна
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-600.0,600.0,-200.0,200.0,-1.0,1.0); ///зададим размеры координатной сетки
glutDisplayFunc(display); ///зададим функцию отображающую необходимые объекты
glutMainLoop(); ///передает управление в glut
return 0;
}