có vẻ như tôi không còn có thể biên dịch mã của tôi trong GCC bài cập nhật Ubuntu 11,10, mặc dù liên kết trong các thư viện với -l. Biên soạn với:GCC biên dịch có tài liệu tham khảo không xác định mặc dù trước đây chức năng liên kết Ubuntu
gcc -lm -lGL -lGLU -lglut T1.c
(Hai thư viện tôi đang cố gắng để liên kết và có khi bao gồm là dư thừa và toán)
Tất cả các thư viện và tập tin tiêu đề là nơi mà chúng được cho là (chúng đã không đi bất cứ nơi nào kể từ khi cập nhật) và tôi đã kiểm tra tất cả các cài đặt gói có liên quan của tôi. Ngoài ra, đây là các biến môi trường của tôi và chúng dường như theo thứ tự:
PATH =/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/trò chơi
C_INCLUDE_PATH =/usr/include
tôi không nghĩ rằng đó là một vấn đề với các mã như tôi không thể biên dịch tập tin tôi biên soạn thành công hôm qua. Nhưng tôi sẽ liên kết nó anyway chỉ trong trường hợp:
#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;
}
Thông báo lỗi:
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
Tôi thành thật không có đầu mối tại sao gcc không thể tìm thấy các tập tin nguồn cần thiết. Bất kỳ trợ giúp nào bạn có thể cung cấp sẽ được đánh giá cao, cảm ơn trước.
EDIT:
Tôi đang sử dụng freeglut Added thông báo lỗi
Và nó biên dịch. Đó là khá ngớ ngẩn, cảm ơn bạn rất nhiều – user975391
Cảm ơn bạn, tôi đã dành một ngày cố gắng để tìm ra lý do tại sao chương trình của tôi không biên dịch ngày 11.10! Bạn có thể mở rộng về lý do thay đổi này xảy ra không? – kristianp
Cảm ơn bạn và cảm ơn Google –