मुझे इसे समझने के लिए थोड़ी देर लग गई, केवल मैं पहले से ही एसडीएल का उपयोग कर रहा था और शेर पर सी से सी ++ में संक्रमण कर रहा था। इसकी न सिर्फ makefile कि इस मुद्दे को यहाँ अपने शायद अपने स्रोत फ़ाइल है, साथ ही ...
डाउनलोड SDL- संस्करण .tar.gz
निकालें और शीघ्र
./configure --prefix=/home/user/SDL && make && make install
में चला जो एक ही है
g++ Main.cpp -o Main `/home/user/SDL/sdl-config --cflags --libs` \
-framework OpenGL -framework Cocoa
:
मान लिया जाये कि सब कुछ वास्तव में बनाया, अब आप SDL-config को क्रियान्वित करते हुए अपने स्रोत का निर्माण करने के लिए उपयोग कर सकते
g++ Main.cpp -o Main -I/home/user/SDL/include \
-L/home/user/SDL/lib -lSDLmain -lSDL -framework OpenGL -framework Cocoa
के रूप में अब कुंजी यहाँ है कि आप सी ++ का उपयोग कर रहे हैं ... के लिए एसडीएल मैक्रो सही ढंग से अपने मुख्य बदलने के लिए, आप आप mangling मुख्य कार्य कॉल से C++ कम्पाइलर को रोकने के लिए की जरूरत है। इस की घोषणा करने के लिए अपने मुख्य जैसे निम्नलिखित:
extern "C" int main(int argc, char ** argv)
{
}
आप extern "सी" सामान शामिल नहीं है, तो सी ++ अपने मुख्य कार्य के नाम बदल जाएगा और एसडीएल स्वचालित रूप से करने के लिए सक्षम नहीं होगा इसे खोजें। यदि आप int मुख्य (int argc, char ** argv) फ़ंक्शन हस्ताक्षर का उपयोग नहीं करते हैं, तो C++ टाइप विसंगतियों के बारे में शिकायत करेगा ... इसलिए आपको इसे क्रियात्मक करना होगा।
Chenz
स्रोत
2012-09-18 08:41:22
+1 यह वास्तव में निराशा के घंटों के बाद मदद करता है मुझे g ++ - 4.8 के साथ संकलित करने के लिए एक सरल एसडीएल प्रोग्राम मिला। – mcheema