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/