Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα σας, χρησιμοποιω win7 64 bit και θέλω να κάνω κάποιες ασκήσεις σε γραφικά με Opengl στο cygwin. δεν μπορώ να κάνω compile όμως, ξέρετε τι φταίει; δεν αναγνωρίζει τις βιβλιοθήκες. το έιχα φτιάξει πριν απο 4 χρόνια αλλά δεν θυμάμαι καθόλου τι είχα κάνει...

Δημοσ.

Δε μπορεις να κανεις compile γενικα; Ενα hello world μπορεις να το κανεις;

Αν ναι, τι error εχεις οταν κανεις compile την opengl εφαρμογη;

 

Επισης τσεκαρε αν εχεις εγκαταστησει στο cygwin το πακετο opengl (απο τον installer)

H εντολη για να κανεις compile ειναι

$ gcc myprogram.c -lglut32 -lglu32 -lopengl32
Δημοσ.

Εγώ σε Linux κάνω compile έτσι:

g++ my_program.cpp -lglut -lGLU -lGL

Το παραθέτω σε περίπτωση που κάτι δουλέψει μιας και το cygwin μεταφέρει το περιβάλλον Unix στο Windows (εκτός κι αν σου δούλεψε η απάντηση του georgemarios που μου φαίνεται πιο πιθανό). Δοκίμασε τα ονόματα των βιβλιοθηκών με ένα 32 στο τέλος, όπως σου έγραψε ο georgemarios.

Δημοσ.

δείτε λίγο την εικόνα. απλά λες και δεν βρίσκει τίποτα...

 

τα είχα καταφε΄ρει με nvidia drivers παλια. τώρα έχω radeon καρτα και δεν ξέρω αν φταίει αυτό..

post-239604-0-14859900-1408373161_thumb.png

post-239604-0-36164600-1408373171_thumb.png

Δημοσ.

Ειναι το αρχειο στο σωστο path? Ξαναρωτω, αν κανεις compile ενα απλo Hello World στο κανει;

 

Το αρχείο που κάνω compile? Μα ναι...αλλιώς θα έβγαζε και άλλο λάθος. Είναι...απλά hello world σε C? Ναι φυσικά και κάθε άλλο πρόγραμμα σε C/C++/Java,,,απλά δεν μπορεί να κάνει Link τις βιβλιοθήκες της Opengl δεν ξέρω γιατί, ούτε ξέρω αν τις έχω στον υπολογιστή μου. Κανονικά έρχονται με τους drivers αλλά έχω μια υποψία πως δεν τους έχω γιατί δεν έβρισκα καθόλου glut αρχείο...

Δημοσ.

τωρα χτυπάει εδώ...

στο header αρχείο glu

void APIENTRY gluQuadricCallback (GLUquadric *qobj, GLenum which, void (CALLBACK* fn)());
 

/usr/include/w32api/GL/glu.h:228:81: error: expected ‘)’ before ‘*’ token
 void APIENTRY gluQuadricCallback (GLUquadric *qobj, GLenum which, void (CALLBACK* fn)());

τι θέλει; :/ Το δικό σας έτσι ειναι?
  • 1 χρόνο αργότερα...
Δημοσ.

ΒΟΗΘΕΙΑ ΕΧΩ ΠΡΟΒΛΗΜΑ ΜΕ ΜΙΑ ΕΡΓΑΣΙΑ ΣΕ OPEN GL ....ΠΡΕΠΕΙ ΝΑ ΦΤΙΑΞΩ ΤΟΝ ΠΑΚΜΑΝ ΝΑ ΚΑΝΕΙ ΚΙΝΗΣΗ ΜΕ ΤΑ ΠΛΗΚΤΡΑ...ΕΧΩ ΦΤΙΑΞΕΙ ΤΟ ΣΩΜΑ ΑΛΛΑ Η ΚΙΝΗΣΗ ΤΙΠΟΤΑ...ΕΠΕΙΓΟΝ!!!

Ο ΚΩΔΙΚΑΣ ΜΟΥ...

#include <GL/glut.h>
#include <math.h>
#define PI 3.14159
#define circlePoints 256
int i;//,x1,x2,y1,y2;
void keyboard(unsigned char key,int x, int y);
void display()
{
GLfloat angleStep=2*PI/(float)circlePoints;
GLuint pointsPerQuarter=circlePoints/4;
GLfloat x[circlePoints];
GLfloat y[circlePoints];
GLfloat radius=10;
glClearColor(0,0,0,0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1,1,0);
for(i=0;i<pointsPerQuarter/2;i++)
{
//Define points in first quadrant
x=radius*cos(i*angleStep);
y=radius*sin(i*angleStep);
x[pointsPerQuarter-1-i]=y;
y[pointsPerQuarter-1-i]=x;
//Define points in second quadrant
x[pointsPerQuarter+i]=-y;
y[pointsPerQuarter+i]=x;
x[2*pointsPerQuarter-1-i]=-x;
y[2*pointsPerQuarter-1-i]=y;
//Define points in third quadrant
x[2*pointsPerQuarter+i]=-x;
y[2*pointsPerQuarter+i]=-y;
x[3*pointsPerQuarter-1-i]=-y;
y[3*pointsPerQuarter-1-i]=-x;
//Define points in fourth quadrant
x[3*pointsPerQuarter+i]=y;
y[3*pointsPerQuarter+i]=-x;
x[4*pointsPerQuarter-1-i]=x;
y[4*pointsPerQuarter-1-i]=-y;
}
glBegin(GL_POLYGON);
for (i=0;i<circlePoints;i++)
{
glVertex2f(x,y);
}
 
glEnd();
glFlush();
{
 
glColor3f(0,0,0);
glBegin(GL_POLYGON);
glVertex2i(0,0);
glVertex2i(5,10);
glVertex2i(30,0);
glEnd();
 
glFlush();
{
 
GLuint x1=10,y1=10;
GLuint x2=20,y2=20;
 
     glClearColor(1,1,1,0);
     glClear(GL_COLOR_BUFFER_BIT);
 
     glColor3f(1,0,0);
     glRecti(x1,y1,x2,y2);
     glFlush();
}
}
 
 
void keyboard(unsigned char key,int x, int y, int x1,int x2,int y1,int y2)
{
          printf("Keyboard event detected \n");
 
          if (key=='w')
          {
                y1++;
                y2++;
          }
          if (key=='s')
         {      y1--;
                y2--;
         }
          if (key=='a')
         {      x1--;
                x2--;
         }
          if (key=='d')
         {       x1++;
                 x2++;
         }
           glutPostRedisplay();
           }
}
 
int main(int argc, char** argv)
{
glutInit(&argc,argv);
glutInitWindowPosition(50,50);
glutInitWindowSize(640,480);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA);
glutCreateWindow("pacman");
 
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-32,32,-24,24);
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}
  • Moderators
Δημοσ.

Καταρχάς ο κώδικας που δίνεις δεν κάνει compile. Κατά δεύτερον, όπως μπορείς να δεις στα docs της glutKeyboardFunc, πρέπει να της δώσεις (unsigned char key, int x, int y). Αυτό που δίνεις εσύ δεν έχει αυτό το signature. Είμαι περίεργος, ο κώδικας που έχεις εσύ κάνει compile; Αν όχι, δοκίμασε να κοιτάξεις τα errors που σου βγάζει.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...