2010-01-15 20 views
8

पर ग्रहण में ओपनजीएल और जीएलयूटी मैं ओसीजी पर ओपनजीएल और जीएलयूटी पुस्तकालयों को स्थापित करने की कोशिश कर रहा हूं, सीडीटी के साथ, ओएस एक्स पर बहुत अधिक सफलता के साथ। मुझे लगता है कि ग्रहण कहां है, वास्तव में यह महसूस करने के लिए ग्रहण प्राप्त नहीं कर रहा है। यह वर्तमान में मुझे त्रुटि दे रहा है कि मेरे पास एक अनसुलझे समावेश GL/glut.h है। ऑनलाइन चारों ओर देखकर मैंने पाया कि मुझे जीसीसी लिंकर सेटिंग्स में -फ्रेमवर्क GLUT ध्वज का उपयोग करना चाहिए, लेकिन यह अप्रभावी लगता है।ओएस एक्स

उत्तर

7

ठीक है। मुझे यह एक्स 11 में काम कर रहा है। कारण मैं केवल एक्स 11 पर काम कर रहा हूं क्योंकि ऐसा लगता है कि ओएस पर ओपनजीएल libs 64-बिट आर्किटेक्चर के लिए हैं, लेकिन ग्रहण केवल 32-बिट आर्किटेक्चर का उपयोग करते हुए कोड संकलित करेगा। शायद अगर यह तय हो गया है तो हम ओएस एक्स प्री-स्थापित पुस्तकालयों का उपयोग कर सकते हैं। इसके अलावा, शायद ओएस पर एक 32-बिट संस्करण झूठ बोल रहा है जिसे हम इसका उपयोग कर सकते हैं लेकिन मुझे यह प्रतीत नहीं होता है। हालांकि, मैं अपने सीखने के उद्देश्यों के लिए X11 का उपयोग करने में सामग्री हूं।

पहले अपनी सी ++ परियोजना बनाएं। तो फिर तुम निम्नलिखित जोड़ने ग्रहण का उपयोग कर 64-बिट में कोड संकलन नहीं कर सकते हैं के बाद से ...

alt text http://img132.imageshack.us/img132/5163/step1c32bit.png

alt text http://img251.imageshack.us/img251/5163/step1c32bit.png

alt text http://img132.imageshack.us/img132/2325/step1linker32bit.png

तो फिर आप अपने पुस्तकालयों की जरूरत है और जोड़ने की स्थापना की। इस निम्न कार्य करने के लिए:

alt text http://img29.imageshack.us/img29/1904/step2linkerglglu.png

alt text http://img196.imageshack.us/img196/4313/step2glut.png

अन्त में आप एक प्रदर्शन चर सेट करना होगा।

alt text http://img40.imageshack.us/img40/7306/step3display.png

इससे पहले कि आप X11 शुरू चला कर देखें।

मेरी मशीन में कुछ चलने के लिए निम्न कोड आज़माएं। आशा है कि यह आप के लिए काम करता है!

//#include <GL/gl.h> 
//#include <GL/glu.h> 
#include <GL/glut.h> 
#define window_width 640 
#define window_height 480 
// Main loop 
void main_loop_function() { 
    // Z angle 
    static float angle; 
    // Clear color (screen) 
    // And depth (used internally to block obstructed objects) 
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 
    // Load identity matrix 
    glLoadIdentity(); 
    // Multiply in translation matrix 
    glTranslatef(0, 0, -10); 
    // Multiply in rotation matrix 
    glRotatef(angle, 0, 0, 1); 
    // Render colored quad 
    glBegin(GL_QUADS); 
    glColor3ub(255, 000, 000); 
    glVertex2f(-1, 1); 
    glColor3ub(000, 255, 000); 
    glVertex2f(1, 1); 
    glColor3ub(000, 000, 255); 
    glVertex2f(1, -1); 
    glColor3ub(255, 255, 000); 
    glVertex2f(-1, -1); 
    glEnd(); 
    // Swap buffers (color buffers, makes previous render visible) 
    glutSwapBuffers(); 
    // Increase angle to rotate 
    angle += 0.25; 
} 
// Initialze OpenGL perspective matrix 
void GL_Setup(int width, int height) { 
    glViewport(0, 0, width, height); 
    glMatrixMode(GL_PROJECTION); 
    glEnable(GL_DEPTH_TEST); 
    gluPerspective(45, (float) width/height, .1, 100); 
    glMatrixMode(GL_MODELVIEW); 
} 
// Initialize GLUT and start main loop 
int main(int argc, char** argv) { 
    glutInit(&argc, argv); 
    glutInitWindowSize(window_width, window_height); 
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE); 
    glutCreateWindow("GLUT Example!!!"); 
    glutDisplayFunc(main_loop_function); 
    glutIdleFunc(main_loop_function); 
    GL_Setup(window_width, window_height); 
    glutMainLoop(); 
} 
+1

इस जवाब ने मुझे उस समाधान के लिए प्रेरित किया जिसे मैं ढूंढ रहा था। अब मेरे पास सब कुछ ठीक से कॉन्फ़िगर किया गया है। कोड के आपूर्ति किए गए टुकड़े के साथ मुझे एकमात्र परिवर्तन करना था, ब्रायन के उत्तर के अनुसार शामिल विवरण को #में शामिल करना था। – fastrack20

3

ओएस एक्स में स्थापित जीएलयूटी लाइब्रेरी के आधार पर आपके शामिल हो सकते हैं।

अपने सिस्टम पर मैं का उपयोग करना होगा:

#include <GLUT/glut.h> 

बनाने के यकीन है कि मेरे कोड है मैं निम्नलिखित पूर्व प्रोसेसर कथन का उपयोग क्रॉस प्लेटफॉर्म:

#if defined(__APPLE__) && defined(__MACH__) 
# include <GLUT/glut.h> 
#else 
# include <GL/glut.h> 
#endif 

कि कुछ या अपनी समस्याओं को ठीक कर सकता है ।

+0

मुझे लगता है कि मैं बदल राज्य भरमार/glut.h को शामिल है, लेकिन यह अभी भी समस्या नहीं सुलझाई है लगता किया कहते हैं कि करने के लिए होती। मेरा मानना ​​है कि स्थापित जीएलयूटी लाइब्रेरी मैकपोर्ट संस्करण से थी। मैंने एक्सकोड स्थापित किया और वहां से सभी पुस्तकालयों को भी रखा। – fastrack20

1

मैकपॉर्ट्स के लिए डिफ़ॉल्ट स्थापना निर्देशिका/opt/local है। आपके कंपाइलर में/opt/local को जोड़ा नहीं जा सकता है ग्रहण में पथ शामिल है। या तो, या डिफ़ॉल्ट रूप से आपको GLUT/glut.h देने के लिए एक्सकोड को पुनर्स्थापित करना एक्सकोड libs के लिए पथ शामिल है (जिसे आपको ग्रहण में जोड़ने की आवश्यकता हो सकती है? मैं ओएस एक्स नहीं चलाता इसलिए मैं यह नहीं कह सकता कि एक्सकोड installdir क्या है है, लेकिन ऐसा लगता है कि यह/डेवलपर, या/लाइब्रेरी/डेवलपर/साझा किया जा सकता है)।

2


मैं के बारे में एक लेख लिखा था कि कैसे सेटअप ग्रहणमें ओपन (और भरमार) अनुप्रयोगों को विकसित करने सेल्सियस के लिए/C++ और जावा में दोनों विंडोज और मैक यदि आप रुचि रखते हैं तो ओएस एक्स। इसमें सभी चरणों और सभी को सिस्टम तैयार करने के लिए जानने की आवश्यकता है।

आप इसे यहाँ पा सकते हैं:
Setup Eclipse to develop OpenGL & GLUT apps in Java & C/C++ on Windows & MAC OS X!