2011-11-15 13 views
7

मैं XCode 4 में भरमार/ओपन परियोजना मैं भरमार/ओपन चौखटे जोड़ दिया है बना रहा हूं, मेरे सभी पुस्तकालयों से जुड़ा हुआ एक साथ-सब अच्छा है, किसी कारण के लिए छोड़कर अपने मुख्य () समारोह glutInit को स्वीकार नहीं करेगा (& argc, argv) और मुझे त्रुटि संदेश यह है कि "glutInit() को कोई मिलता-जुलता समारोह कॉल देता है। अजीब बात यह है कि यह glutInitDisplayMode जैसे अन्य भरमार कार्यों में से कुछ स्वीकार करता है (है) और glutCreateWindow() लेकिन सिर्फ glutInit नहीं()।XCode प्रोजेक्ट निश्चित भरमार पहचान नहीं कर सकते आदेशों

इसके अलावा, मैं 3 कॉलबैक कार्यों

glutDisplayFunc(DisplayCallback)  
glutReshapeFunc(ReshapeCallback)  
glutKeyboardFunc(KeyboardCallback) 

मेरे परियोजना एसी का उपयोग कर रहा केवल पहली बार cepts, लेकिन दूसरे दो को पहचान नहीं है, वही त्रुटि दे रहा है जैसा यह glutInit() के साथ करता है।

क्या कोई विचार गलत हो सकता है?

+3

एक पूर्ण, न्यूनतम प्रोग्राम पोस्ट करें जो समस्या का प्रदर्शन करता है। – genpfault

उत्तर

1

पता नहीं अगर आप अपने जवाब मिला, लेकिन यह लगता है कि आप अपने Xcode प्रोजेक्ट में नहीं जोड़ा है भरमार फ्रेमवर्क (Xcode 4.x कल्पना करते हुए): मुख्य में

सर्वोच्च परियोजना आइकन पर क्लिक करें खिड़की की साइड बार।

'+' के अंतर्गत 'लिंक पुस्तकालयों के साथ बाइनरी' पर क्लिक करें और 'भरमार' के लिए खोज।

उस ढांचे को जोड़ें।

यकीन

#import <GLUT/glut.h> 

अपने हेडर फाइल में है सुनिश्चित करें।

33

मुझे बिल्कुल वही त्रुटि मिली है।

मैं अंत में main() समारोह के तर्क में बदलाव करके समस्या को हल कर दिया है।

कर देखें कि कहीं argvconst के रूप में घोषित किया गया है। इसे main फ़ंक्शन तर्क से हटाकर glutInit त्रुटि गायब हो गई। इस तरह से आप भविष्य पाठक को दर्शाता

glutInit(&argc, const_cast<char**>(argv)); 

:

// delete const from argv declaration 
int main(int argc, const char * argv[]) // from this, 
int main(int argc, char * argv[])  // to this. 
+0

क्या कोई बता सकता है कि यह क्यों हो रहा है? मेरा मतलब है 'कॉन्स्ट' के बिना यह काम करता है, क्योंकि यह विफल रहता है। – BRabbit27

+3

यह सी ++ टाइप मिस्चैच समस्या है जिसे अन्य स्थितियों में आसानी से पाया जा सकता है और हल किया जा सकता है। glutInit() argv की घोषणा का तात्पर्य है कि argv की सामग्री लिखने योग्य है लेकिन मुख्य कार्य में glv अंतर्निहित argvInit केवल इसलिए पढ़ा जाता है। – Keugyeol

2

मेरी विनम्र राय के अनुसार, यह सी ++ में प्रकार मेल नहीं खाता से बचने के लिए नीचे दिए गए कोड का टुकड़ा पर एक नज़र डालें const_cast इनपुट तर्क बेहतर है आपके प्रोग्राम के बारे में आप जानते हैं कि argv एक स्थिर है और const_cast-यह आपको पता है कि आप क्या कर रहे हैं।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^