mix@lis Δημοσ. 24 Μαρτίου 2006 Δημοσ. 24 Μαρτίου 2006 Καλησπερα σε ολους! Εχω το Dev C++ και οταν θελω να τρεξω μια απλη εφαρμογη σε OpenGL μου βγαζει errors και δεν μου αναγνωριζει καποιες συναρτησεις...!!!βεβαια με OpenGL ασχολουμε πρωτη φορα στην ζωη μου και παιρνω ετοιμο κωδικα απο το google για να δω λιγο πως ειναι....αλλα οπως ειπα πιο πανω δεν τρεχει ο κωδικας.....μπορειτε να με βοηθησετε λιγο????τι πρεπει να κανω ακριβως για να τρεξει ο κωδικας? Μηπως να δοκιμασω και το visual studio.Net??εχω ψαξει στο Internet αλλα δεν μπορω να το βρω...και δεν ξερω ακριβως τι να κατεβασω.... οπιος μπορει ας μου δωσει ενα Link απο το ποιο να κατεβαζω απευθειας το visual studio.... Ευχαριστω πολυ!!
georgemarios Δημοσ. 24 Μαρτίου 2006 Δημοσ. 24 Μαρτίου 2006 τι errors σου βγαζει; εχεις κανει λινκ τις βιβλιοθηκες της opengl? [εδιτ] α, και φυσικα το βιζουαλ στουντιο ειναι πολυ ανωτερο απο το ντεβ-σεπεπε αλλα δεν ειναι τζαμπα, καθολου θα ελεγα [/εδιτ]
bandito Δημοσ. 25 Μαρτίου 2006 Δημοσ. 25 Μαρτίου 2006 τι errors σου βγαζει; εχεις κανει λινκ τις βιβλιοθηκες της opengl? [εδιτ] α' date=' και φυσικα το βιζουαλ στουντιο ειναι πολυ ανωτερο απο το ντεβ-σεπεπε αλλα δεν ειναι τζαμπα, καθολου θα ελεγα [/εδιτ'] Νομίζω οτι οι express εκδόσεις είναι τσάμπα. Visual Studio Express Editions Επίσης υπάρχει και το Sharp Develop που είναι Open Source και πολύ πιο ολοκληρωμένο απο τις express εκδόσεις του visual studio.
mix@lis Δημοσ. 25 Μαρτίου 2006 Μέλος Δημοσ. 25 Μαρτίου 2006 για παραδειγμα τρεχω τον παρακατω κωδικα... #include <GL/glut.h> #include "stdlib.h" #define RAMPSIZE 16 #define RAMP1START 32 #define RAMP2START 48 static float rotAngle = 0.; void init(void) { int i; for (i = 0; i < RAMPSIZE; i++) { GLfloat shade; shade = (GLfloat) i/(GLfloat) RAMPSIZE; glutSetColor(RAMP1START+(GLint)i, 0., shade, 0.); glutSetColor(RAMP2START+(GLint)i, 0., 0., shade); } glEnable (GL_LINE_SMOOTH); glHint (GL_LINE_SMOOTH_HINT, GL_DONT_CARE); glLineWidth (1.5); glClearIndex ((GLfloat) RAMP1START); } void display(void) { glClear(GL_COLOR_BUFFER_BIT); glIndexi(RAMP1START); glPushMatrix(); glRotatef(-rotAngle, 0.0, 0.0, 0.1); glBegin (GL_LINES); glVertex2f (-0.5, 0.5); glVertex2f (0.5, -0.5); glEnd (); glPopMatrix(); glIndexi(RAMP2START); glPushMatrix(); glRotatef(rotAngle, 0.0, 0.0, 0.1); glBegin (GL_LINES); glVertex2f (0.5, 0.5); glVertex2f (-0.5, -0.5); glEnd (); glPopMatrix(); glFlush(); } void reshape(int w, int h) { glViewport(0, 0, (GLsizei) w, (GLsizei) h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w <= h) gluOrtho2D (-1.0, 1.0, -1.0*(GLfloat)h/(GLfloat)w, 1.0*(GLfloat)h/(GLfloat)w); else gluOrtho2D (-1.0*(GLfloat)w/(GLfloat)h, 1.0*(GLfloat)w/(GLfloat)h, -1.0, 1.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void keyboard(unsigned char key, int x, int y) { switch (key) { case 'r': case 'R': rotAngle += 20.; if (rotAngle >= 360.) rotAngle = 0.; glutPostRedisplay(); break; case 27: exit(0); break; default: break; } } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_INDEX); glutInitWindowSize (200, 200); glutCreateWindow (argv[0]); init(); glutReshapeFunc (reshape); glutKeyboardFunc (keyboard); glutDisplayFunc (display); glutMainLoop(); return 0; } και μου βγαζει αυτα τα errors... [Linker error] undefined reference to `glutSetColor' [Linker error] undefined reference to `glutSetColor' [Linker error] undefined reference to `_imp__glEnable' [Linker error] undefined reference to `_imp__glHint' [Linker error] undefined reference to `_imp__glLineWidth' [Linker error] undefined reference to `_imp__glClearIndex' [Linker error] undefined reference to `glutReshapeFunc' [Linker error] undefined reference to `glutCreateWindow' . . . . .
georgemarios Δημοσ. 25 Μαρτίου 2006 Δημοσ. 25 Μαρτίου 2006 ακριβως.... ΔΕΝ εκανες λινκ τις βιβλιοθηκες gl, glu και glut αν θυμαμαι καλα, στον dev-cpp για να τις κανεις λινκ πρεπει να βαλεις σαν παραμετρο (το πρωτο γραμμα ειναι ελ μικρο, οχι γιωτα κεφαλαιο): -lGL -lGLU -lglut βρες στις ρυθμισεις του project σου αν εχει καπου παραμετρους για τον linker
mix@lis Δημοσ. 25 Μαρτίου 2006 Μέλος Δημοσ. 25 Μαρτίου 2006 Δυστυχως το εψαξα αλλα δεν μπορεσα να βγαλω ακρη.... Οποιος μπορει ας βοηθησει.......
georgemarios Δημοσ. 25 Μαρτίου 2006 Δημοσ. 25 Μαρτίου 2006 αντε, με εβαλες να εγκαταστησω παλι το Dev....... λοιπον, - ανοιγεις project options (η πατας Alt+P) - πηγαινεις στο parameters κατω απο το linker εχει ενα κουμπι που λεει add library or object. Αυτο ειναι για να προσθεσεις βιβλιοθηκες που θες να γινουν λινκ με το εκτελεσιμο σου. Επιλεγεις διαδοχικα απο το lib directory του dev-cppτις βιβλιοθηκες: C:/Dev-Cpp/lib/libglut32.a C:/Dev-Cpp/lib/libopengl32.a C:/Dev-Cpp/lib/libglu32.a και λογικα εισαι κομπλε......
mix@lis Δημοσ. 25 Μαρτίου 2006 Μέλος Δημοσ. 25 Μαρτίου 2006 λοιπον αν κανω link ολα τα αρχεια που ειναι μεσα στο lib Μου βγαζει μονο ενα error...Αυτο: C:\Documents and Settings\Mixals\Desktop\Makefile.win [build Error] [mpa.exe] Error 255
georgemarios Δημοσ. 25 Μαρτίου 2006 Δημοσ. 25 Μαρτίου 2006 λοιπον.... στην αρχη-αρχη του αρχειου βαλε τα εξης 2 #define GLUT_DISABLE_ATEXIT_HACK και #include <windows.h> και μη κανεις λινκ τα παντα, μονο τις 3 βιβλιοθηκες που σου ειπα
mix@lis Δημοσ. 25 Μαρτίου 2006 Μέλος Δημοσ. 25 Μαρτίου 2006 ουτε τωρα..... Πραγματικα δεν ξερω τι να πω! Μου βγαζει ο ιδιο error
georgemarios Δημοσ. 25 Μαρτίου 2006 Δημοσ. 25 Μαρτίου 2006 για δοκιμασε να κανεις κομπαιλ αυτο εδω οπως ειναι ακριβως... #define GLUT_DISABLE_ATEXIT_HACK #include <windows.h> #include <iostream> #include <stdlib.h> #include <gl\gl.h> #include <gl\glu.h> #include <gl\glut.h> using namespace std; void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glColor3f(1,0,0); glBegin(GL_QUADS); glVertex3f(-1,-1,-3); glVertex3f( 1,-1,-3); glVertex3f( 1, 1,-3); glVertex3f(-1, 1,-3); glEnd(); glutSwapBuffers(); } void reshape(GLsizei w,GLsizei h) { glViewport(0,0,w,h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45,w/h,1,100); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } void init() { glClearColor(0,0,0,0); } void keyboard(unsigned char key,int x,int y) { if(key==27) exit(0); } int main(int argc, char *argv[]) { glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowSize(640,480); glutInitWindowPosition(100,100); glutCreateWindow("my first DevC glut"); init(); glutDisplayFunc(display); glutReshapeFunc(reshape); glutKeyboardFunc(keyboard); glutMainLoop(); return 0; } μη ξεχνωντας φυσικα να κανεις λινκ με τις βιβλιοθηκες......
mix@lis Δημοσ. 25 Μαρτίου 2006 Μέλος Δημοσ. 25 Μαρτίου 2006 Ευχαριστω πολυ georgemarios!!!Δουλεψε..... Αλλα μπορεις να μου εξηγησεις γιατι τωρα ετρεξε και πριν δεν ετρεχε?? Τι πρεπει να προσεχω καθε φορα που γραφω κωδικα σε OpnenGL??
georgemarios Δημοσ. 25 Μαρτίου 2006 Δημοσ. 25 Μαρτίου 2006 λοιπον.... το #define GLUT_DISABLE_ATEXIT_HACK ειναι μαλακια του Dev-Cpp συγκεκριμενα. Δεν ξερω τι ακριβως κανει και δε θελω να μαθω γιατι δε χρησιμοποιω Dev-Cpp..... Οταν γραφεις σε windows, η OpenGL θελει να κανεις include και το windows.h ΠΡΙΝ κανεις include τα δικα της headers. Τα headers της opengl ειναι το gl.h και glu.h τα οποια στη συγκεκριμενη περιπτωση τα εκανε ινκλουντ για σενα το glut.h Ωραιααααα..... και τωρα που καταφερες να δουλεψεις το Dev-Cpp, κανε το unistall, σβησε τον installer, καψε τα clusters του δισκου σου στα οποια βρισκοταν ωστε να μην υπαρχει περιπτωση recovery και βαλε visual studio (o bandito εχει δικιο, η express εκδοση ειναι τζαμπε)
mix@lis Δημοσ. 25 Μαρτίου 2006 Μέλος Δημοσ. 25 Μαρτίου 2006 Σε ευχαριστω πολυ για τις συμβουλες....!!! Οντως φαινεται λιγο δυστροπο το Dev c++ για OpenGL...Πηγα εκει που ειπε ο bandito αλλα δεν ξερω τι να κατεβασω εχει αρκετες επιλογες......Μπορεις να μου πεις ακριβως τι να κατεβασω?? Και παλι ευχαριστω πολυ!
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.