URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8723
[ Назад ]

Исходное сообщение
"OpenGL+FreeBSD+gcc HELP!"

Отправлено Aunque , 08-Май-10 08:42 
При попытке скомпили абсолютно верно написанную прогу (я списал из учебника) с помощью
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;
}



Содержание

Сообщения в этом обсуждении
"OpenGL+FreeBSD+gcc HELP!"
Отправлено Vitaly_loki , 08-Май-10 12:19 
Сама либа GLUT то установлена? Я только что простейший вращающийся куб через glut скомпилил на голой Убунте (только glut установил). Проверьте

"OpenGL+FreeBSD+gcc HELP!"
Отправлено fsakvador , 15-Май-10 12:05 
>Сама либа GLUT то установлена? Я только что простейший вращающийся куб через
>glut скомпилил на голой Убунте (только glut установил). Проверьте

Да, точно стоит... В папке /usr/include/GL и /usr/local/include/GL.


"OpenGL+FreeBSD+gcc HELP!"
Отправлено NuINu , 15-Май-10 14:44 
>>Сама либа GLUT то установлена? Я только что простейший вращающийся куб через
>>glut скомпилил на голой Убунте (только glut установил). Проверьте
>
>Да, точно стоит... В папке /usr/include/GL и /usr/local/include/GL.

инклюдах никакие библиотеки не лежат , а только заголовки
найдите где у вас лежат библиотеки и укажите к ним путь в параметре -L????????


"OpenGL+FreeBSD+gcc HELP!"
Отправлено fsakvador , 16-Май-10 15:33 
>инклюдах никакие библиотеки не лежат , а только заголовки
>найдите где у вас лежат библиотеки и укажите к ним путь в
>параметре -L????????

Как называются библиотеки, то есть что именно надо искать? Если на find / -name libglut / lglut ничего не находится то значит они не стоят? Тогда почему при попытке установить из портов libglut пишет что уже есть. Я не понимаю...

З.Ы. Спасибо что быстро отвечаете я и не ожидал что здесь так оперативно все :)


"OpenGL+FreeBSD+gcc HELP!"
Отправлено jd , 17-Май-10 03:47 
Файлы библиотеки называются libglut.a (статическая) и libglut.so, libglut.so.<версия> (динамическая). Настоятельно рекомендую почитать, как в UNIX системах происходит компиляция, линковка и запуск программ. Вопросы, которые вы задаёте, показывают, что вы не знакомы с самыми базовыми вещами. С таким подходом у вас на каждом шагу будут возникать совершенно ненужные вопросы.

P.S. Помимо GLUT вам понадобятся и другие библиотеки. В частности сама GL и др.

P.P.S. У вас там в коде две опечатки. Используйте ключ -Wall при компиляции - это сильно облегчит вам жизнь.


"OpenGL+FreeBSD+gcc HELP!"
Отправлено Lud , 29-Июл-11 18:22 
Уважаемый коллега.
Там две опечатки в тексте
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
С уважением Сергей