2011-10-14 11 views
10

के बावजूद संदर्भों को अपरिभाषित किया है, ऐसा लगता है कि मैं अब पुस्तकालयों में लिंक करने के बावजूद जीसीसी पोस्ट उबंटू 11.10 अपडेट में अपना कोड संकलित नहीं कर सकता। साथ संकलन:जीसीसी संकलन ने पहले कार्यात्मक लिंकिंग उबंटू

जीसीसी -lm -lGL -lGLU T1.c -lglut

सभी पुस्तकालयों (मैं लिंक और भी शामिल है के रूप में करने के लिए कोशिश कर रहा हूँ दो पुस्तकालयों भरमार और गणित कर रहे हैं) और हेडर फाइलें हैं जहां वे होने चाहिए (वे अपडेट के बाद कहीं भी नहीं गए हैं) और मैंने अपने सभी प्रासंगिक पैकेज इंस्टॉलेशन की जांच की है। इसके अलावा यहां मेरे पर्यावरण चर हैं और वे क्रम में प्रतीत होते हैं:

पाथ =/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/बिन:/usr/खेल

C_INCLUDE_PATH =/usr/शामिल

मैं इसे कोड के साथ एक समस्या के रूप में मैं फ़ाइलों मैं सफलतापूर्वक संकलित संकलन करने में असमर्थ हूँ नहीं लगता कि बिता कल। लेकिन मैं यह वैसे भी सिर्फ मामले में लिंक कर देंगे:

#include <math.h> 
    #include <GL/glut.h> 

    const int WIDTH=640; 
    const int HEIGHT=480; 
    const float NEAR_CLIP=0.1f; 
    const float FAR_CLIP=100.0f; 
    const double INC_ROTATE=5; 
    double rotate=0; 

    void rotateObject() { 
      rotate+=INC_ROTATE; 
    } 

    void update() { 
      //rotateObject(); 
    } 

    void drawAxes() { 
     double x = 1.5, y = 1.5, z = 1.5; 
     glLineWidth(4); 
     glBegin(GL_LINES); 
      glColor3d(1,0,0); 
      glVertex3d(0,0,0); 
      glVertex3d(x,0,0); 
      glColor3d(0,1,0); 
      glVertex3d(0,0,0); 
      glVertex3d(0,y,0); 
      glColor3d(0,0,1); 
      glVertex3d(0,0,0); 
      glVertex3d(0,0,z); 
     glEnd(); 
     glLineWidth(1); 
    } 

    void render() { 
      glClear(GL_COLOR_BUFFER_BIT); 
      glLoadIdentity(); 
      gluLookAt(1.2,1.0,2.5,0.0,0.0,0.0,0.0,1.0,0.0); 
      drawAxes(); 
      glColor3d(1,1,1); 
      glRotated(rotate,0,0,1); 
      glutWireCube(1); 
    } 

    void display() { 
      update(); 
      render(); 
    } 

    void reshape(int width, int height) { 
      float fAspect=0; 
      float fovy=(M_PI/3); 
      float top=tan(fovy*0.5)*NEAR_CLIP; 
      float bottom=top; 
      float left=fAspect*bottom; 
      float right=fAspect*top; 

      glViewport(0,0,width,height); 
      glMatrixMode(GL_PROJECTION); 
      glLoadIdentity(); 
      glFrustum(left,right,bottom,top,NEAR_CLIP, FAR_CLIP); 
      glMatrixMode(GL_MODELVIEW); 

    } 

    int main(int argc, char **argv) { 

      glClearColor(0,0,0,1); 
      glutInit(&argc, argv); 
      glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA); 
     glutInitWindowPosition(100,100); 
     glutInitWindowSize(320,320); 
     glutCreateWindow("T1"); 

     glutDisplayFunc(display); 
     glutReshapeFunc(reshape); 
     glutIdleFunc(display); 

     glutMainLoop(); 

      return 1; 
    } 

त्रुटि संदेश:

 T1.c:(.text+0x63): undefined reference to `glLineWidth' 
    T1.c:(.text+0x6d): undefined reference to `glBegin' 
    T1.c:(.text+0x82): undefined reference to `glColor3d' 
    T1.c:(.text+0x93): undefined reference to `glVertex3d' 
    T1.c:(.text+0xa5): undefined reference to `glVertex3d' 
    T1.c:(.text+0xba): undefined reference to `glColor3d' 
    T1.c:(.text+0xcb): undefined reference to `glVertex3d' 
    T1.c:(.text+0xe1): undefined reference to `glVertex3d' 
    T1.c:(.text+0xf6): undefined reference to `glColor3d' 
    T1.c:(.text+0x107): undefined reference to `glVertex3d' 
    T1.c:(.text+0x11d): undefined reference to `glVertex3d' 
    T1.c:(.text+0x122): undefined reference to `glEnd' 
    T1.c:(.text+0x12f): undefined reference to `glLineWidth' 
    /tmp/cc4VqRwQ.o: In function `render': 
    T1.c:(.text+0x143): undefined reference to `glClear' 
    T1.c:(.text+0x148): undefined reference to `glLoadIdentity' 
    T1.c:(.text+0x18a): undefined reference to `gluLookAt' 
    T1.c:(.text+0x1b1): undefined reference to `glColor3d' 
    T1.c:(.text+0x1ce): undefined reference to `glRotated' 
    T1.c:(.text+0x1db): undefined reference to `glutWireCube' 
    /tmp/cc4VqRwQ.o: In function `reshape': 
    T1.c:(.text+0x22e): undefined reference to `tan' 
    T1.c:(.text+0x28a): undefined reference to `glViewport' 
    T1.c:(.text+0x294): undefined reference to `glMatrixMode' 
    T1.c:(.text+0x299): undefined reference to `glLoadIdentity' 
    T1.c:(.text+0x2da): undefined reference to `glFrustum' 
    T1.c:(.text+0x2e4): undefined reference to `glMatrixMode' 
    /tmp/cc4VqRwQ.o: In function `main': 
    T1.c:(.text+0x30b): undefined reference to `glClearColor' 
    T1.c:(.text+0x31e): undefined reference to `glutInit' 
    T1.c:(.text+0x328): undefined reference to `glutInitDisplayMode' 
    T1.c:(.text+0x337): undefined reference to `glutInitWindowPosition' 
    T1.c:(.text+0x346): undefined reference to `glutInitWindowSize' 
    T1.c:(.text+0x350): undefined reference to `glutCreateWindow' 
    T1.c:(.text+0x35d): undefined reference to `glutDisplayFunc' 
    T1.c:(.text+0x367): undefined reference to `glutReshapeFunc' 
    T1.c:(.text+0x374): undefined reference to `glutIdleFunc' 
    T1.c:(.text+0x379): undefined reference to `glutMainLoop' 
    collect2: ld returned 1 exit status 

मैं ईमानदारी से कोई सुराग नहीं क्यों जीसीसी आवश्यक स्रोत फ़ाइलें नहीं मिल सकता है। आप जो भी मदद कर सकते हैं उसकी बहुत सराहना की जाएगी, अग्रिम धन्यवाद।

संपादित करें:

मैं उपयोग कर रहा हूँ freeglut जोड़ा गया त्रुटि संदेश

उत्तर

24

मैं ld (संयोजक) अनुमान लगा रहा हूँ थोड़ा अलग तरह से काम करने के लिए बदल दिया गया है।

स्रोत फ़ाइल

gcc T1.c -lm -lGL -lGLU -lglut 

या apt-get install binutils-gold, जाहिरा तौर पर नए सोने लिंकर अभी भी निर्भर साझा पुस्तकालयों पर कार्रवाई करेंगे, भले ही वे कमांड लाइन पर पहले प्रकट होने के बाद अपने पुस्तकालयों रखो।

+0

और यह संकलित करता है। यह मूर्खतापूर्ण है, बहुत बहुत धन्यवाद – user975391

+1

धन्यवाद, मैंने एक दिन काम करने की कोशिश की है कि मेरा कार्यक्रम 11.10 पर क्यों संकलित नहीं होता है! क्या आप विस्तार कर सकते हैं कि यह परिवर्तन क्यों हुआ है? – kristianp

+0

धन्यवाद और धन्यवाद Google –

संबंधित मुद्दे