<¨D§U> Symbol referencing errors for a C program
±z¬O²Ä
414ÓÂsÄýªÌ
When I complied my progA.c using makefile it gives me an error like ld:fatal: Symbol referencing errors. No output written to p1a
Is something wrong with my program?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NULL 0
void command(char *com, FILE *infile1);
void datapacket(FILE *infile2);
void controlpacket(FILE *infile3);
//int bin2dec(char *bin); //Converting binary to decimal.
main (int argc, char *argv[])
{
FILE *infile; //input file
// FILE *outfile;//output the file
char comm[] ={"-c"||"-d"||"-cd"}; //for command argument
// char errors[] = ("Error failed to open"); //To print the error in outfile
int n;
int count=3;//The number to define the argv.
if(count != argc)
{
printf("\nError cannot open the file\n");
}
else
{
if((argv[1] == comm))
{
if((infile = fopen(argv[2],"r"))==NULL)
{
printf("\nError Cannot open the file\n");
}
else
{
infile = fopen(argv[2], "r");
command(comm, infile);
fclose(infile);
}
}
}
}
void command(char *com, FILE *infile1)
{
if(strcmp(com, "-c") == 0)
{
controlpacket(infile1);
}
if(strcmp(com, "-d") == 0)
{
datapacket(infile1);
}
if(strcmp(com, "-cd") ==0)
{
controlpacket(infile1);
datapacket(infile1);
}
else
{
printf("Error bad command exit\n");
}
}
void controlpacket(FILE *infile3)
{
char control[20];
int i;
int n; //Packet ID Number
char valcon; //valued that is converted from bin2dec
while((fread(control,1, 16, infile3))!='\0') //read it until end file
{
if(control[0]=='1')
{
for(n=0;n<=8;++n)
{
//Write ouput to the file.
//Use printf for now
printf("%d", control[n]);
}
}
}
//fwrite the value;
}
void datapacket(FILE *infile2)
{
char control[20];
int n; //Packet ID Number
int i; //Payload size number
while((fread(control,1,16, infile2))!='\0') //read it until end file
{
if(control[0]=='0')
{
for(i=1;i<=7;i++)
{
//Write the output of Payload size number
//Use printf for now
printf("%d",control);
}
for(n=8; n<=16; n++)
{
//write the output of the Packet ID;
//Use printf for now
printf("%d",control[n]);
}
}
}
}
The program should produce an exe file called p1a
Here is my makefile
#makefile
.PHONY: clean all
all:p1a
p1a: progA.o
gcc -lglut -o $@ $^
prog1.o: progA.c
gcc -c -Wall -Werror $<
clean:
rm -f *.o *~ p1a
Here is the complete error mess:
gcc -lglut -o p1a progA.o
Undefined first referenced
symbol in file
cos /usr/local/lib/libglut.so
sin /usr/local/lib/libglut.so
XUnmapWindow /usr/local/lib/libglut.so
sqrt /usr/local/lib/libglut.so
XQueryDeviceState /usr/local/lib/libglut.so
gluCylinder /usr/local/lib/libglut.so
XCreateFontCursor /usr/local/lib/libglut.so
XFree /usr/local/lib/libglut.so
glEnd /usr/local/lib/libglut.so
gluQuadricNormals /usr/local/lib/libglut.so
glBitmap /usr/local/lib/libglut.so
XInstallColormap /usr/local/lib/libglut.so
glEnable /usr/local/lib/libglut.so
glFinish /usr/local/lib/libglut.so
XOpenDisplay /usr/local/lib/libglut.so
glXQueryExtension /usr/local/lib/libglut.so
glXQueryVersion /usr/local/lib/libglut.so
XIconifyWindow /usr/local/lib/libglut.so
XCreateBitmapFromData /usr/local/lib/libglut.so
XQueryExtension /usr/local/lib/libglut.so
glScalef /usr/local/lib/libglut.so
XSetWMIconName /usr/local/lib/libglut.so
glXWaitX /usr/local/lib/libglut.so
XLowerWindow /usr/local/lib/libglut.so
XSetWMColormapWindows /usr/local/lib/libglut.so
XFreeDeviceState /usr/local/lib/libglut.so
XListInputDevices /usr/local/lib/libglut.so
XCreatePixmapCursor /usr/local/lib/libglut.so
XOpenDevice /usr/local/lib/libglut.so
XDestroySubwindows /usr/local/lib/libglut.so
glTranslatef /usr/local/lib/libglut.so
XDestroyWindow /usr/local/lib/libglut.so
gluErrorString /usr/local/lib/libglut.so
XEventsQueued /usr/local/lib/libglut.so
glPolygonMode /usr/local/lib/libglut.so
XWarpPointer /usr/local/lib/libglut.so
glMapGrid2f /usr/local/lib/libglut.so
XGrabPointer /usr/local/lib/libglut.so
XRefreshKeyboardMapping /usr/local/lib/libglut.so
XFillPolygon /usr/local/lib/libglut.so
glPopAttrib /usr/local/lib/libglut.so
glXCreateContext /usr/local/lib/libglut.so
XGetWindowProperty /usr/local/lib/libglut.so
XDefineCursor /usr/local/lib/libglut.so
XAllocColor /usr/local/lib/libglut.so
XAllocColorCells /usr/local/lib/libglut.so
XDeleteProperty /usr/local/lib/libglut.so
glPopMatrix /usr/local/lib/libglut.so
XFlush /usr/local/lib/libglut.so
XMapWindow /usr/local/lib/libglut.so
glXChooseVisual /usr/local/lib/libglut.so
XCreateWindow /usr/local/lib/libglut.so
gluNewQuadric /usr/local/lib/libglut.so
glNormal3f /usr/local/lib/libglut.so
glXDestroyContext /usr/local/lib/libglut.so
XPending /usr/local/lib/libglut.so
XGetVisualInfo /usr/local/lib/libglut.so
XChangeWindowAttributes /usr/local/lib/libglut.so
XFreeDeviceList /usr/local/lib/libglut.so
glXGetClientString /usr/local/lib/libglut.so
XDisplayName /usr/local/lib/libglut.so
XResizeWindow /usr/local/lib/libglut.so
XFillRectangle /usr/local/lib/libglut.so
XSelectExtensionEvent /usr/local/lib/libglut.so
glXIsDirect /usr/local/lib/libglut.so
XChangeProperty /usr/local/lib/libglut.so
XQueryColors /usr/local/lib/libglut.so
glXSwapBuffers /usr/local/lib/libglut.so
glEvalMesh2 /usr/local/lib/libglut.so
XAllocWMHints /usr/local/lib/libglut.so
XLookupString /usr/local/lib/libglut.so
XCreateGC /usr/local/lib/libglut.so
XStoreColor /usr/local/lib/libglut.so
XDrawLines /usr/local/lib/libglut.so
XTranslateCoordinates /usr/local/lib/libglut.so
glNormal3fv /usr/local/lib/libglut.so
glRotatef /usr/local/lib/libglut.so
glVertex3fv /usr/local/lib/libglut.so
glGetString /usr/local/lib/libglut.so
XSetWMName /usr/local/lib/libglut.so
XFreeColors /usr/local/lib/libglut.so
XLookupKeysym /usr/local/lib/libglut.so
XSetWMProtocols /usr/local/lib/libglut.so
XFreePixmap /usr/local/lib/libglut.so
glPushAttrib /usr/local/lib/libglut.so
XSynchronize /usr/local/lib/libglut.so
glXQueryExtensionsString /usr/local/lib/libglut.so
gluSphere /usr/local/lib/libglut.so
XFreeColormap /usr/local/lib/libglut.so
XUngrabPointer /usr/local/lib/libglut.so
glXMakeCurrent /usr/local/lib/libglut.so
XGetKeyboardControl /usr/local/lib/libglut.so
XGetExtensionVersion /usr/local/lib/libglut.so
glGetIntegerv /usr/local/lib/libglut.so
glPushMatrix /usr/local/lib/libglut.so
XPeekEvent /usr/local/lib/libglut.so
XGetRGBColormaps /usr/local/lib/libglut.so
XSetWMNormalHints /usr/local/lib/libglut.so
XWithdrawWindow /usr/local/lib/libglut.so
glGetError /usr/local/lib/libglut.so
glVertex2f /usr/local/lib/libglut.so
glVertex3f /usr/local/lib/libglut.so
XInternAtom /usr/local/lib/libglut.so
XDrawString /usr/local/lib/libglut.so
glDrawBuffer /usr/local/lib/libglut.so
gluQuadricDrawStyle /usr/local/lib/libglut.so
glBegin /usr/local/lib/libglut.so
glMap2f /usr/local/lib/libglut.so
XConfigureWindow /usr/local/lib/libglut.so
glReadBuffer /usr/local/lib/libglut.so
glXGetConfig /usr/local/lib/libglut.so
XCreateColormap /usr/local/lib/libglut.so
XParseGeometry /usr/local/lib/libglut.so
XRaiseWindow /usr/local/lib/libglut.so
XSetWMProperties /usr/local/lib/libglut.so
XSelectInput /usr/local/lib/libglut.so
XNextEvent /usr/local/lib/libglut.so
XTextWidth /usr/local/lib/libglut.so
XChangeKeyboardControl /usr/local/lib/libglut.so
XGetGeometry /usr/local/lib/libglut.so
glPixelStorei /usr/local/lib/libglut.so
XSetWindowColormap /usr/local/lib/libglut.so
glViewport /usr/local/lib/libglut.so
XLoadQueryFont /usr/local/lib/libglut.so
ld: fatal: Symbol referencing errors. No output written to p1a
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `p1a'
¹ê¥Î¬ÛÃö·j´M: map ua now lg it ati eva sm idd dc