The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Программирование с glut"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [ Отслеживать ]

"Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 14:59 
Я программирую под Linux Fedora

Основная проблема не компилится программа!

Были установлены пакеты freeglut.
Снес установил glut, потому как не находились функции glut.
снес freeglut, потому что был конфликт библиотек.

Установлены пакеты.
http://redhat-archive.osmirror.nl/9/en/os/i386/RedHat/RPMS/g...
http://redhat-archive.osmirror.nl/9/en/os/i386/RedHat/RPMS/g...

Компилирую след образом
[code=cpp]
gcc torus.c -o torus -lGLU -lGL -lX11 -lglut -lm

Получаю
[code=cpp]
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to `XFreeDeviceList'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to `XListInputDevices'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to `XSelectExtensionEvent'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to `XOpenDevice'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to `XmuLookupStandardColormap'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to `XQueryDeviceState'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to `XGetExtensionVersion'
/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../libglut.so: undefined reference to `XFreeDeviceState'

Я догадываюсь, что это функции Xlib, но у меня вроде библиотека X11 подключена но почемут-то они ищатся в  libglut.so

Вопроса всего два
1 Как скомпилировать эту программу?
2 Можно было бы скомпилировать программу с freeglut?

Вот код, который хочу скомпилить

[code=cpp]
#include <GL/glut.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

#define PI_ 3.14159265358979323846

GLuint theTorus;

/* Draw a torus */
static void torus(int numc, int numt)
{
   int i, j, k;
   double s, t, x, y, z, twopi;

   twopi = 2 * PI_;
   for (i = 0; i < numc; i++) {
      glBegin(GL_QUAD_STRIP);
      for (j = 0; j <= numt; j++) {
         for (k = 1; k >= 0; k--) {
            s = (i + k) % numc + 0.5;
            t = j % numt;

            x = (1+.1*cos(s*twopi/numc))*cos(t*twopi/numt);
            y = (1+.1*cos(s*twopi/numc))*sin(t*twopi/numt);
            z = .1 * sin(s * twopi / numc);
            glVertex3f(x, y, z);
         }
      }
      glEnd();
   }
}

/* Create display list with Torus and initialize state */
static void init(void)
{
   theTorus = glGenLists (1);
   glNewList(theTorus, GL_COMPILE);
   torus(8, 25);
   glEndList();

   glShadeModel(GL_FLAT);
   glClearColor(0.0, 0.0, 0.0, 0.0);
}

/* Clear window and draw torus */
void display(void)
{
   glClear(GL_COLOR_BUFFER_BIT);
   glColor3f (1.0, 1.0, 1.0);
   glCallList(theTorus);
   glFlush();
}

/* Handle window resize */
void reshape(int w, int h)
{
   glViewport(0, 0, (GLsizei) w, (GLsizei) h);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   gluPerspective(30, (GLfloat) w/(GLfloat) h, 1.0, 100.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
   gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
}

/* Rotate about x-axis when "x" typed; rotate about y-axis
   when "y" typed; "i" returns torus to original view */
void keyboard(unsigned char key, int x, int y)
{
   switch (key) {
   case 'x':
   case 'X':
      glRotatef(30.,1.0,0.0,0.0);
      glutPostRedisplay();
      break;
   case 'y':
   case 'Y':
      glRotatef(30.,0.0,1.0,0.0);
      glutPostRedisplay();
      break;
   case 'i':
   case 'I':
      glLoadIdentity();
      gluLookAt(0, 0, 10, 0, 0, 0, 0, 1, 0);
      glutPostRedisplay();
      break;
   case 27:
      exit(0);
      break;
   }
}

int main(int argc, char **argv)
{
   glutInitWindowSize(200, 200);
   glutInit(&argc, argv);
   glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
   glutCreateWindow(argv[0]);
   init();
   glutReshapeFunc(reshape);
   glutKeyboardFunc(keyboard);
   glutDisplayFunc(display);
   glutMainLoop();
   return 0;
}


Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 15:16 
И еще вопрос кто как ставил glut под Linux?
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Программирование с glut"  
Сообщение от TyLLIKAH on 17-Дек-08, 15:25 
>И еще вопрос кто как ставил glut под Linux?

-lGLU -lGL -lX11 -lglut -lm

поставь как можно раньше

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Программирование с glut"  
Сообщение от TyLLIKAH on 17-Дек-08, 15:36 

>поставь как можно раньше

В смысле там, где у тебя undefined reference to поставь эти -lXXX в начало списка -l...-l ...

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 15:48 
>
>>поставь как можно раньше
>
>В смысле там, где у тебя undefined reference to поставь эти -lXXX
>в начало списка -l...-l ...

Не помогает ни какой разницы попробовал
-lGLU -lGL -lX11 -lglut -lm
-lX11 -lglut -lGLU -lGL -lm
-lglut -lX11 -lGLU -lGL -lm

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 15:59 
Еще вопрос у кого - нибудь вообще эта программа компилируется?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Программирование с glut"  
Сообщение от Guest (??) on 17-Дек-08, 16:31 
У меня все собирается с одной -lglut, что логично и правильно.

посмотри ldd /usr/lib/libglut.so

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 16:43 
>У меня все собирается с одной -lglut, что логично и правильно.
>
>посмотри ldd /usr/lib/libglut.so

[root@localhost ~]# ldd /usr/lib/libglut.so
        linux-gate.so.1 =>  (0xb7f6a000)
        libc.so.6 => /lib/libc.so.6 (0xb7da2000)
        /lib/ld-linux.so.2 (0x80000000)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 17:06 
>>У меня все собирается с одной -lglut, что логично и правильно.
>>
>>посмотри ldd /usr/lib/libglut.so
>
>[root@localhost ~]# ldd /usr/lib/libglut.so
>        linux-gate.so.1 =>  (0xb7f6a000)
>        libc.so.6 => /lib/libc.so.6 (0xb7da2000)
>        /lib/ld-linux.so.2 (0x80000000)

Все эти библиотеки присутствуют и libxi установлена
чедеса е мое

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 17:20 
короче бывают и такие как программеры тратят день в пустую на поиск какого-то велосипеда
здец просто увольнять таких надо к чертовой матери сидит тратит чужие деньги
вобщем диктую правильное решение
gcc torus.c -o torus -lglut -lX11 -lm -lGLU -lGL -lXi -lXmu


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 17:36 
>короче бывают и такие как программеры тратят день в пустую на поиск
>какого-то велосипеда
>здец просто увольнять таких надо к чертовой матери сидит тратит чужие деньги
>
>вобщем диктую правильное решение
>gcc torus.c -o torus -lglut -lX11 -lm -lGLU -lGL -lXi -lXmu

PS это я про себя

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "Программирование с glut"  
Сообщение от Petr Korneev on 17-Дек-08, 17:49 
Просто нужно использовать дистрибутивы и/или пакеты, которые собраны руками, а не жопой.

ldd для libglut должен быть таким:

на FreeBSD:

% ldd /usr/local/lib/libglut.so  
/usr/local/lib/libglut.so:
        libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x28300000)
        libX11.so.6 => /usr/local/lib/libX11.so.6 (0x28378000)
        libXext.so.6 => /usr/local/lib/libXext.so.6 (0x281aa000)
        libGL.so.1 => /usr/local/lib/libGL.so.1 (0x2845f000)
        libXmu.so.6 => /usr/local/lib/libXmu.so.6 (0x281b7000)
        libXi.so.6 => /usr/local/lib/libXi.so.6 (0x281d5000)
        libc.so.7 => /lib/libc.so.7 (0x2807e000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x284f5000)
        libm.so.5 => /lib/libm.so.5 (0x281dd000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x281f2000)
        libXau.so.6 => /usr/local/lib/libXau.so.6 (0x281fc000)
        libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x285e3000)
        librpcsvc.so.4 => /usr/lib/librpcsvc.so.4 (0x285e8000)
        libGLcore.so.1 => /usr/local/lib/libGLcore.so.1 (0x285f0000)
        libnvidia-tls.so.1 => /usr/local/lib/libnvidia-tls.so.1 (0x28e0d000)
        libm.so.3 => /usr/local/lib/compat/libm.so.3 (0x28e0f000)
        libXt.so.6 => /usr/local/lib/libXt.so.6 (0x28e2a000)
        libSM.so.6 => /usr/local/lib/libSM.so.6 (0x28e77000)
        libICE.so.6 => /usr/local/lib/libICE.so.6 (0x28e7f000)

на Ubuntu:

% ldd /usr/lib/libglut.so.3
    linux-gate.so.1 =>  (0xb7fc5000)
    libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7f5c000)
    libGL.so.1 => /usr/lib/libGL.so.1 (0xb7efa000)
    libGLU.so.1 => /usr/lib/libGLU.so.1 (0xb7e76000)
    libXext.so.6 => /usr/lib/libXext.so.6 (0xb7e68000)
    libX11.so.6 => /usr/lib/libX11.so.6 (0xb7d81000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7c32000)
    /lib/ld-linux.so.2 (0xb7fc6000)
    libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1 (0xb7c2d000)
    libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0xb7c2a000)
    libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7c24000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7c0c000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7c08000)
    libdrm.so.2 => /usr/lib/libdrm.so.2 (0xb7bfe000)
    libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7b0b000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7aff000)
    libXau.so.6 => /usr/lib/libXau.so.6 (0xb7afc000)
    libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7afa000)
    libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7ae2000)
    libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7add000)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 18:01 
>Просто нужно использовать дистрибутивы и/или пакеты, которые собраны руками, а не жопой.

Ты такой умный просто ений чтобы тебе всю жизнь такие же гении попадались
подскажи пож как мне под федорой все это добро собрать
а я вот например не знаю где у фидоры в каком репозитории лежит glut со всеми приведенными табой зависимостями поэто му специально для остроумных как ТЫ указал, что брал их у redhat
У fedora я нашел много glut'a но все поразному работают.

Только из-за глута надо операционку сменить ну гений
Что наши умные гении завтра придумают?
ГЫГЫ

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "Программирование с glut"  
Сообщение от Petr Korneev on 17-Дек-08, 18:09 
>Ты такой умный просто ений чтобы тебе всю жизнь такие же гении попадались
>Что наши умные гении завтра придумают?

Ну раз так, указывай всю кучу иксовых либ при линковке, делов-то.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 18:15 
>>Ты такой умный просто ений чтобы тебе всю жизнь такие же гении попадались
>>Что наши умные гении завтра придумают?
>
>Ну раз так, указывай всю кучу иксовых либ при линковке, делов-то

вариант не плохой я об этом как только решение нашел сразу и подумал

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "Программирование с glut"  
Сообщение от likenix email(ok) on 17-Дек-08, 18:05 
Если можешь помоги лучше с программой gDEBugger там тоже мой пост
может дело опять в Fedora)


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру