Je fais quelques expériences avec opengl in c pour linux. J’ai la fonction suivante qui dessinerait un cercle en fonction de ces parameters. J’ai inclus
#include #include #include #include
Cependant quand je comstack:
gcc fiver.c -o fiver -lglut
Je reçois:
/usr/bin/ld: /tmp/ccGdx4hW.o: undefined reference to symbol 'sin@@GLIBC_2.2.5' /usr/bin/ld: note: 'sin@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try adding it to the linker command line /lib64/libm.so.6: could not read symbols: Invalid operation collect2: ld returned 1 exit status
La fonction est la suivante:
void drawCircle (int xc, int yc, int rad) { // // draw a circle centered at (xc,yc) with radius rad // glBegin(GL_LINE_LOOP); // int angle; for(angle = 0; angle < 365; angle = angle+5) { double angle_radians = angle * (float)3.14159 / (float)180; float x = xc + rad * (float)cos(angle_radians); float y = yc + rad * (float)sin(angle_radians); glVertex3f(x,0,y); } glEnd(); }
Quelqu’un sait-il ce qui ne va pas?
L’éditeur de liens ne peut pas trouver la définition de la fonction sin (). Vous devez lier votre application à la bibliothèque de mathématiques. Comstackr avec:
gcc fiver.c -o fiver -lglut -lm