Title: include C++ multiple declaration Post by: Aurelius on April 25, 2007, 12:54:46 pm Λοιπον χρησιμοποιουμε τον kdevelop, αν και δεν νομιζω οτι παιζει κανενα ιδιαιτερο ρολο και οταν κανουμε build το project βγαζει multiple declaration of ... σε πολλα αρχεια.
Χρησιμοποιουμε κανονικα τα #ifndef #define ... #endif Ωστοσο, προφανως καπου πανε να ξαναδηλωθουν και βγαζει το σφαλμα. 1) Απο αυτο δε υποτιθεται οτι σε προστατευουν τα #ifndef κτλ; 2) Υπαρχει κανας ευκολος τροπος να το αντιμετωπισουμε, απο το να δουμε μια μια κλαση τι ακριβως χρησιμοποιει σε σχεση με τις αλλες και να δηλωσουμε οποιες χρειαζονται οπου χρειαζονται; Title: Re: Απορια στην C++ Post by: Καμένος on April 25, 2007, 14:51:50 pm Υπαρχει κανας ευκολος τροπος να το αντιμετωπισουμε? ... να δουμε μια μια κλαση τι ακριβως χρησιμοποιει σε σχεση με τις αλλες και να δηλωσουμε οποιες χρειαζονται οπου χρειαζονται. 8) 8) Title: Re: Απορια στην C++ Post by: Verminoz on April 25, 2007, 15:21:55 pm Όταν μιλάει ο Μάστερ (εγώ) δεν τον ακούτε....
Title: Re: Απορια στην C++ Post by: poumpa on April 25, 2007, 17:15:06 pm Χρησιμοποιουμε κανονικα τα Είσαι σίγουρος;;; να δουμε μια μια κλαση τι ακριβως χρησιμοποιει σε σχεση με τις αλλες και να δηλωσουμε οποιες χρειαζονται οπου χρειαζονται; Οχι ΥΓ. Τα #ifndef κτλ; λεγονται "include guards":P :P :P :P :P :P :P Title: Re: Απορια στην C++ Post by: Aurelius on April 26, 2007, 10:38:50 am Ατςςςςςςςςςςςςςςςςςςςςςςςςςςςς................... . και include guards...
Ναι ειναι σωστα, διοτι μπαινουν αυτοματα στο kdevelop και σε αλλα προγραμματα που εκαν δουλευαν μια χαρα... Α ρε μαστερ... Title: Re: Απορια στην C++ Post by: poumpa on April 26, 2007, 12:43:13 pm Ίσως αυτα τα "αυτόματα" δεν είναι τόσο εμπιστοσυνής...
Αμα δε βαριεσαι βαλε κωδικα απο κει που σου βγαζει σφάλμα Title: deleted Post by: BOBoMASTORAS on April 26, 2007, 12:48:01 pm deleted
Title: deleted Post by: BOBoMASTORAS on April 26, 2007, 12:48:58 pm deleted
Title: Re: include C++ multiple declaration Post by: Aurelius on April 26, 2007, 13:01:51 pm Πηγα να το κανω και στο Visual Studio αλλα ηθελε να βαλω τα stdafx.h και βαριεμαι απιστευτα. ουτως η αλλως πρεπει να δουλεψει σε compiler για linux.
Title: Re: include C++ multiple declaration Post by: poumpa on April 26, 2007, 22:05:08 pm Το σφάλμα γίνεται για όλα τα αρχεία ή για συγκεκριμένο;
Γίνεται στο compile ή στο link; Αντί για include guards μπορείς να χρησιμοποιήσεις την παρακάτω εντολή στην αρχή κάθε header file Code: #pragma once Ουσιαστικά κάνει το ίδιο πράγμα (με κάποιες μικροδιαφορές που δεν τις γνωρίζω :P). Προσχή όμως: δεν είναι σίγουρο ότι θα το υποστηρίζει ο compiler! Πάντως αν kdevelop χρησιμοποιεί τον GCC δε θα έχει πρόβλημα ...νομίζω. Πηγα να το κανω και στο Visual Studio αλλα ηθελε να βαλω τα stdafx.h και βαριεμαι απιστευτα. ουτως η αλλως πρεπει να δουλεψει σε compiler για linux. Όταν δημιουργείς Project πάνε στην καρτέλα με τα Properties (ή κάτι τέτοιο) και επέλεξε empty project Title: deleted Post by: BOBoMASTORAS on April 26, 2007, 22:13:56 pm deleted
Title: Re: include C++ multiple declaration Post by: poumpa on April 26, 2007, 22:38:57 pm Έτσι όπως το λες είναι όντως σαν να μην λειτουργουν τα include guards...
Η λειτουργία τους είναι πολύ απλή για να υπάρχει κάποιο λάθος. Ίσως κάποια παράμετρος του kdevelop;;; Πάντως δε χάνεις τίποτα να δοκιμάσεις το #pragma once. Αν λειτουργεί σωστά θα εξαναγκάσει το compiler να περιλάβει το header μονο μια φορά. |