При попытке скомпили абсолютно верно написанную прогу (я списал из учебника) с помощью
gcc -o test test.c получаю/var/tmp//ccjOzaU0.o(.text+0x72): In function `Display':
: undefined reference to `glClearColor'
/var/tmp//ccjOzaU0.o(.text+0x7e): In function `Display':
: undefined reference to `glClear'
/var/tmp//ccjOzaU0.o(.text+0x9a): In function `Display':
: undefined reference to `glColor3ub'
и т.д. по всем функциям. Если пишуgcc -o test test.c -lglut //Как и lGLUT
получаю
/usr/bin/ld: cannot find -lglut
Что делать?...
Спасибо тем кто откликнется!Вот текст первой проги из учебника Баяковский Игнатенко "Начальный курс OpenGL вдруг нужен:
#include <stdlib.h>
#include <GL/glut.h>GLint Width=512, Height =512;
const int CubeSize = 200;
void Display(void)
{
int left,right,top,bottom;left =(Width -CubeSize)/2;
right=left+CubeSize;
bottom=(Height-CubeSize)/2;
top=bottom+CubeSize;glClearColor(0.7,0.7,0.7,1);
glClear(GL_COLOR_BUFFER_BIT);glColor3ub(255,0,0);
glBegin(GL_QUADS);
glVertex2f(left,bottom);
glVertex2f(right,top);
glVertex2f(right,bottom);glEnd();
glFinish();
}
void Reshape(GLint w, GLint h)
{
Width=w;
Height=h;glVewport(0,0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIndentity();
glOrtho(0,w,0,h,-1.0,-1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}void Keyboard(unsigned char key, int x, int y)
{
const char ESCAPE='\033';
if (key==ESCAPE)
exit(0);
}int main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowSize(Width, Height);
glutCreateWindow("Red_square_example");
glutDisplayFunc(Display);
glutReshapeFunc(Reshape);
glutKeyboardFunc(Keyboard);glutMainLoop();
return 0;
}
Сама либа GLUT то установлена? Я только что простейший вращающийся куб через glut скомпилил на голой Убунте (только glut установил). Проверьте
>Сама либа GLUT то установлена? Я только что простейший вращающийся куб через
>glut скомпилил на голой Убунте (только glut установил). ПроверьтеДа, точно стоит... В папке /usr/include/GL и /usr/local/include/GL.
>>Сама либа GLUT то установлена? Я только что простейший вращающийся куб через
>>glut скомпилил на голой Убунте (только glut установил). Проверьте
>
>Да, точно стоит... В папке /usr/include/GL и /usr/local/include/GL.инклюдах никакие библиотеки не лежат , а только заголовки
найдите где у вас лежат библиотеки и укажите к ним путь в параметре -L????????
>инклюдах никакие библиотеки не лежат , а только заголовки
>найдите где у вас лежат библиотеки и укажите к ним путь в
>параметре -L????????Как называются библиотеки, то есть что именно надо искать? Если на find / -name libglut / lglut ничего не находится то значит они не стоят? Тогда почему при попытке установить из портов libglut пишет что уже есть. Я не понимаю...
З.Ы. Спасибо что быстро отвечаете я и не ожидал что здесь так оперативно все :)
Файлы библиотеки называются libglut.a (статическая) и libglut.so, libglut.so.<версия> (динамическая). Настоятельно рекомендую почитать, как в UNIX системах происходит компиляция, линковка и запуск программ. Вопросы, которые вы задаёте, показывают, что вы не знакомы с самыми базовыми вещами. С таким подходом у вас на каждом шагу будут возникать совершенно ненужные вопросы.P.S. Помимо GLUT вам понадобятся и другие библиотеки. В частности сама GL и др.
P.P.S. У вас там в коде две опечатки. Используйте ключ -Wall при компиляции - это сильно облегчит вам жизнь.
Уважаемый коллега.
Там две опечатки в тексте
loadIn верно Id...
и выше
glWe надо glWie
#gcc -Wall -pedantic -o test.cpp -lGL -lGLU -lglut -I/usr/X11R6/include -L/usr/X11R6/lib/
test
Воттак компилируется в Slackware 11.
Но скорей всего Вы тоже чайник так как эти моменты заметны Там опечатки само собой
но параметры подбираются-могут по разному быть Slackware - самая лучшая ОС и еще FreeBSD
я пробовал примеры из Борескова то в slackware только мэйки поправил а систему как поста
вил ничего не менял а в других месяц никак не мог скомпилировать Хорошая книга Борескова
Расширения OpenGL
С уважением Сергей