I have install opengl libarary using

 sudo apt-get install freeglut3-dev

i have run program abgr.c as

gcc -lglut abgr.c

but it show the messages

/tmp/ccuop45Z.o: In function `Init':
abgr.c:(.text+0x15): undefined reference to `glMatrixMode'
abgr.c:(.text+0x1a): undefined reference to `glLoadIdentity'
abgr.c:(.text+0x42): undefined reference to `gluPerspective'
abgr.c:(.text+0x4e): undefined reference to `glMatrixMode'
abgr.c:(.text+0x5a): undefined reference to `glDisable'
/tmp/ccuop45Z.o: In function `TexFunc':
abgr.c:(.text+0x198): undefined reference to `glEnable'
abgr.c:(.text+0x1b5): undefined reference to `glTexParameterf'
abgr.c:(.text+0x1d2): undefined reference to `glTexParameterf'
abgr.c:(.text+0x1ef): undefined reference to `glTexParameterf'
abgr.c:(.text+0x20c): undefined reference to `glTexEnvf'
abgr.c:(.text+0x258): undefined reference to `glTexImage2D'
abgr.c:(.text+0x264): undefined reference to `glBegin'
abgr.c:(.text+0x27a): undefined reference to `glTexCoord2f'
abgr.c:(.text+0x299): undefined reference to `glVertex3f'
abgr.c:(.text+0x2af): undefined reference to `glTexCoord2f'
abgr.c:(.text+0x2ce): undefined reference to `glVertex3f'
abgr.c:(.text+0x2e4): undefined reference to `glTexCoord2f'
abgr.c:(.text+0x303): undefined reference to `glVertex3f'
abgr.c:(.text+0x319): undefined reference to `glTexCoord2f'
abgr.c:(.text+0x338): undefined reference to `glVertex3f'
abgr.c:(.text+0x33d): undefined reference to `glEnd'
abgr.c:(.text+0x389): undefined reference to `glTexImage2D'
abgr.c:(.text+0x395): undefined reference to `glBegin'
abgr.c:(.text+0x3ab): undefined reference to `glTexCoord2f'
abgr.c:(.text+0x3ca): undefined reference to `glVertex3f'
abgr.c:(.text+0x3e0): undefined reference to `glTexCoord2f'
abgr.c:(.text+0x3ff): undefined reference to `glVertex3f'
abgr.c:(.text+0x415): undefined reference to `glTexCoord2f'
abgr.c:(.text+0x434): undefined reference to `glVertex3f'
abgr.c:(.text+0x44a): undefined reference to `glTexCoord2f'
abgr.c:(.text+0x469): undefined reference to `glVertex3f'
abgr.c:(.text+0x46e): undefined reference to `glEnd'
abgr.c:(.text+0x47a): undefined reference to `glDisable'
/tmp/ccuop45Z.o: In function `Draw':
abgr.c:(.text+0x4aa): undefined reference to `glClearColor'
abgr.c:(.text+0x4b6): undefined reference to `glClear'
abgr.c:(.text+0x4d5): undefined reference to `glRasterPos3f'
abgr.c:(.text+0x501): undefined reference to `glDrawPixels'
abgr.c:(.text+0x520): undefined reference to `glRasterPos3f'
abgr.c:(.text+0x54c): undefined reference to `glDrawPixels'
abgr.c:(.text+0x55f): undefined reference to `glutSwapBuffers'
abgr.c:(.text+0x566): undefined reference to `glFlush'
/tmp/ccuop45Z.o: In function `main':
abgr.c:(.text+0x62b): undefined reference to `glutInit'
abgr.c:(.text+0x66a): undefined reference to `glutInitDisplayMode'
abgr.c:(.text+0x676): undefined reference to `glutCreateWindow'
abgr.c:(.text+0x682): undefined reference to `glutExtensionSupported'
abgr.c:(.text+0x6af): undefined reference to `glutKeyboardFunc'
abgr.c:(.text+0x6bb): undefined reference to `glutDisplayFunc'
abgr.c:(.text+0x6c0): undefined reference to `glutMainLoop'
collect2: ld returned 1 exit status


HERE IS MY PROGRAM abgr.c



#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <GL/glut.h>

GLenum doubleBuffer;
GLubyte ubImage[65536];

static void
Init(void)
{
  int j;
  GLubyte *img;
  GLsizei imgWidth = 128;

  glMatrixMode(GL_PROJECTION);
  glLoadIdentity();
  gluPerspective(60.0, 1.0, 0.1, 1000.0);
  glMatrixMode(GL_MODELVIEW);
  glDisable(GL_DITHER);

  /* Create image */
  img = ubImage;
  for (j = 0; j < 32 * imgWidth; j++) {
    *img++ = 0xff;
    *img++ = 0x00;
    *img++ = 0x00;
    *img++ = 0xff;
  }
  for (j = 0; j < 32 * imgWidth; j++) {
    *img++ = 0xff;
    *img++ = 0x00;
    *img++ = 0xff;
    *img++ = 0x00;
  }
  for (j = 0; j < 32 * imgWidth; j++) {
    *img++ = 0xff;
    *img++ = 0xff;
    *img++ = 0x00;
    *img++ = 0x00;
  }
  for (j = 0; j < 32 * imgWidth; j++) {
    *img++ = 0x00;
    *img++ = 0xff;
    *img++ = 0x00;
    *img++ = 0xff;
  }
}

/* ARGSUSED1 */
static void
Key(unsigned char key, int x, int y)
{
  switch (key) {
  case 27:
    exit(0);
  }
}

void
TexFunc(void)
{
  glEnable(GL_TEXTURE_2D);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
  glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL);

#if GL_EXT_abgr
  glTexImage2D(GL_TEXTURE_2D, 0, 3, 128, 128, 0, GL_ABGR_EXT,
    GL_UNSIGNED_BYTE, ubImage);

  glBegin(GL_POLYGON);
  glTexCoord2f(1.0, 1.0);
  glVertex3f(-0.2, 0.8, -100.0);
  glTexCoord2f(0.0, 1.0);
  glVertex3f(-0.8, 0.8, -2.0);
  glTexCoord2f(0.0, 0.0);
  glVertex3f(-0.8, 0.2, -2.0);
  glTexCoord2f(1.0, 0.0);
  glVertex3f(-0.2, 0.2, -100.0);
  glEnd();
#endif

  glTexImage2D(GL_TEXTURE_2D, 0, 3, 128, 128, 0, GL_RGBA,
    GL_UNSIGNED_BYTE, ubImage);

  glBegin(GL_POLYGON);
  glTexCoord2f(1.0, 1.0);
  glVertex3f(0.8, 0.8, -2.0);
  glTexCoord2f(0.0, 1.0);
  glVertex3f(0.2, 0.8, -100.0);
  glTexCoord2f(0.0, 0.0);
  glVertex3f(0.2, 0.2, -100.0);
  glTexCoord2f(1.0, 0.0);
  glVertex3f(0.8, 0.2, -2.0);
  glEnd();

  glDisable(GL_TEXTURE_2D);
}

static void
Draw(void)
{

  glClearColor(0.0, 0.0, 0.0, 1.0);
  glClear(GL_COLOR_BUFFER_BIT);

#if GL_EXT_abgr
  glRasterPos3f(-0.8, -0.8, -1.5);
  glDrawPixels(128, 128, GL_ABGR_EXT, GL_UNSIGNED_BYTE, ubImage);
#endif

  glRasterPos3f(0.2, -0.8, -1.5);
  glDrawPixels(128, 128, GL_RGBA, GL_UNSIGNED_BYTE, ubImage);

  TexFunc();

  if (doubleBuffer) {
    glutSwapBuffers();
  } else {
    glFlush();
  }
}

static void
Args(int argc, char **argv)
{
  GLint i;

  doubleBuffer = GL_TRUE;

  for (i = 1; i < argc; i++) {
    if (strcmp(argv[i], "-sb") == 0) {
      doubleBuffer = GL_FALSE;
    } else if (strcmp(argv[i], "-db") == 0) {
      doubleBuffer = GL_TRUE;
    }
  }
}

int
main(int argc, char **argv)
{
  GLenum type;

  glutInit(&argc, argv);
  Args(argc, argv);

  type = GLUT_RGB;
  type |= (doubleBuffer) ? GLUT_DOUBLE : GLUT_SINGLE;
  glutInitDisplayMode(type);
  glutCreateWindow("ABGR extension");
  if (!glutExtensionSupported("GL_EXT_abgr")) {
    printf("Couldn't find abgr extension.\n");
    exit(0);
  }
#if !GL_EXT_abgr
  printf("WARNING: client-side OpenGL has no ABGR extension support!
\n");
  printf("         Drawing only RGBA (and not ABGR) images and
textures.\n");
#endif
  Init();
  glutKeyboardFunc(Key);
  glutDisplayFunc(Draw);
  glutMainLoop();
  return 0;             /* ANSI C requires main to return int. */
}










-- 
FOSS Nepal mailing list: [email protected]
http://groups.google.com/group/foss-nepal
To unsubscribe, e-mail: [email protected]

Mailing List Guidelines: 
http://wiki.fossnepal.org/index.php?title=Mailing_List_Guidelines
Community website: http://www.fossnepal.org/

Reply via email to