से पहले शामिल है तो मैं अपने ओपनजीएल कोड को मुख्य() से एक विशिष्ट वर्ग में स्थानांतरित करने की कोशिश कर रहा हूं जो आवश्यक होने पर केवल 3 डी ग्राफिक्स को संभालेगा। पहले, मेरी main.cpp फ़ाइल का शीर्ष इस तरह दिखता था:#error gl.h glew.h
#define GLEW_STATIC
#include <GL/glew.h>
#include <SFML/Graphics.hpp>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Game.h"
यह काफी अच्छा काम करता था। मैंने जो करने की कोशिश की वह सभी ओपनजीएल-प्रासंगिक कोड को Game
वर्ग के तरीकों में ले जाया गया था। तो मैं ऊपर से #define GLEW_STATIC
और #include <GL/glew.h>
हटा दिया है, और उन्हें Game.h में डाल दिया, ऐसी है कि Game.h के शीर्ष अब इस तरह दिखता है:
#define GLEW_STATIC
#include <GL/glew.h>
#include <SFML/Graphics.hpp>
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Environment.h"
जब मैं संकलित करने के लिए प्रयास करते हैं, मैं शीर्षक त्रुटि मिलती है, #error gl.h included before glew.h
।
यह क्यों हो रहा है, और मैं बिना किसी होस्टिंग के विशिष्ट वर्ग के कार्यों के अंदर ओपनजीएल कोड (लगभग) का उपयोग कैसे कर सकता हूं?
संपादित करें:
मैं भी main.cpp में इस विन्यास की कोशिश की है यह सुनिश्चित करें कि कुछ भी नहीं Glew से पहले SFML शामिल करने के लिए एक प्रयास में।
#include <cstdlib>
#include <iostream>
#include <fstream>
#include "Game.h"
#include <SFML/Graphics.hpp>
दुर्भाग्यवश, इससे मदद नहीं मिलती है (इसमें कुछ भी शामिल नहीं है जिसमें मैं यहां उल्लेख नहीं कर रहा हूं)।
क्या इसका मतलब है कि अब आप #.ccluding glew.h को दो बार जोड़ रहे हैं, एक बार main.cpp से और एक बार game.h से? मुझे लगता है कि glew.h उस के लिए लिखा नहीं गया है (या तो कोई गार्ड या #pragma) ताकि आपको या तो अपने स्वयं के गार्ड जोड़ना होगा या इसे ठीक से शामिल करना होगा। – Rup
@Rup GLEW में # शामिल गार्ड हैं। यह कुछ अन्य पुस्तकालय है जिसमें gl.h शामिल है। संभवतः एसएफएमएल। –
नहीं, मैं इसे main.cpp से हटा देता हूं। मुझे लगता है कि यह एसएफएमएल हो सकता है, लेकिन मैं इस धारणा के तहत था कि इसमें gl.h शामिल नहीं था, क्योंकि वहां कुछ ट्यूटोरियल हैं जो चाहते हैं कि आप स्पष्ट रूप से उस फ़ाइल को शामिल करना चाहते हैं। मैं इसके साथ घूमता हूं और देखता हूं कि क्या यह कुछ हल करता है - लेकिन मुझे अभी भी मेरे वर्तमान सेटअप के साथ, main.cpp में SFML का उपयोग करने की आवश्यकता है। – GarrickW